NetLogo:最后两个报价的全局变量的值可以存储在列表中并在过程中调用吗?
NetLogo: Can the value of a global variable of last two ticks be stored in a list and be called in a procedure?
我希望代理只记住最后一个报价的全局变量的值,我想将它们存储在一个列表中并稍后使用它,其中代理应该比较列表项并为当前报价做出决定。我已经尝试实现以下代码,但这些努力都是徒劳的。
`set time-car_t-2 time-car of tick [n - 2]
set time-car_t-1 time-car of last tick
set history-time-car [list time-car_t-1 time-car_t-2 time-car_t]
计算 time-car 的逻辑已经到位并且正在运行,其中所有三个都是全局变量 "time-car"、"time-car_t-1" 和 "time-car_t-2"
任何建议都会有所帮助,我将不胜感激。
提前致谢。
NetLogo 不会记住过去的值,因此它无法为您提供过去报价中的变量值(或报告器的结果)。您需要在生成这些值时将它们保存在模型中,这通常是通过使用列表来完成的。在下面的代码中,每只海龟都设置了一个长度为 5 的 time-car-history
(由 history-length
指定),最初用 -1 填充。然后,在 test
中,每只海龟获得 time-car
的值(这里只是一个随机数)并将其添加到其历史记录的开头。因此,当前值在它的 time-car-history
中是 item 0
,之前一个跳动的值是 item 1 time-car-history
,等等,返回四个跳动。请注意,在将当前值添加到 time-car-history
时,我使用 but-last
删除了最后一个值,因此仅保存了最近的五个值。如果将此代码粘贴到空白模型中,在命令行中键入 "setup",然后重复键入 "test",您应该会看到它是如何工作的。
turtles-own [time-car-history]
to setup
clear-all
let history-length 5 ; the number of periods you want to save
create-turtles 10 [
; creates a history list of the right length, filled with -1's.
set time-car-history n-values history-length [-1]
]
reset-ticks
end
to test
ask turtles [
set time-car-history fput time-car but-last time-car-history
]
ask turtle 3 [
show time-car-history
show item 0 time-car-history
show item 1 time-car-history
show item 2 time-car-history
]
tick
end
to-report time-car
report random 10
end
我希望代理只记住最后一个报价的全局变量的值,我想将它们存储在一个列表中并稍后使用它,其中代理应该比较列表项并为当前报价做出决定。我已经尝试实现以下代码,但这些努力都是徒劳的。
`set time-car_t-2 time-car of tick [n - 2]
set time-car_t-1 time-car of last tick
set history-time-car [list time-car_t-1 time-car_t-2 time-car_t]
计算 time-car 的逻辑已经到位并且正在运行,其中所有三个都是全局变量 "time-car"、"time-car_t-1" 和 "time-car_t-2"
任何建议都会有所帮助,我将不胜感激。 提前致谢。
NetLogo 不会记住过去的值,因此它无法为您提供过去报价中的变量值(或报告器的结果)。您需要在生成这些值时将它们保存在模型中,这通常是通过使用列表来完成的。在下面的代码中,每只海龟都设置了一个长度为 5 的 time-car-history
(由 history-length
指定),最初用 -1 填充。然后,在 test
中,每只海龟获得 time-car
的值(这里只是一个随机数)并将其添加到其历史记录的开头。因此,当前值在它的 time-car-history
中是 item 0
,之前一个跳动的值是 item 1 time-car-history
,等等,返回四个跳动。请注意,在将当前值添加到 time-car-history
时,我使用 but-last
删除了最后一个值,因此仅保存了最近的五个值。如果将此代码粘贴到空白模型中,在命令行中键入 "setup",然后重复键入 "test",您应该会看到它是如何工作的。
turtles-own [time-car-history]
to setup
clear-all
let history-length 5 ; the number of periods you want to save
create-turtles 10 [
; creates a history list of the right length, filled with -1's.
set time-car-history n-values history-length [-1]
]
reset-ticks
end
to test
ask turtles [
set time-car-history fput time-car but-last time-car-history
]
ask turtle 3 [
show time-car-history
show item 0 time-car-history
show item 1 time-car-history
show item 2 time-car-history
]
tick
end
to-report time-car
report random 10
end