随着时间的推移创建累积列表
Create accumulative list over time
我想将来自变量的值存储在列表中,为每个滴答添加新的变量输出。可以说变量在每个滴答声中输出不同的值。为简单起见,这是由公式确定的; 2 * ticks (var = 2 * ticks),因此列表在五个 ticks [0 2 4 6 8] 后应该看起来像这样。但是我无法让它工作。由于 NetLogo 不允许从过去获取值,我该如何处理?
我现在有这样的东西:
ask turtles[
let var_list [ ]
foreach var_list [
set var_list lput var var_list
]
print var_list
]
然而,这只给出空列表或只显示最新 var 值的列表(当我将 let var_list [] 更改为 let var_list [ 0 ] 时)。我怎样才能正确地得到它在 table 中为每个报价输入变量值?
您正在使用 let
创建临时局部变量。跨刻度保留值没有问题,但您确实需要使用全局或 turtle/patch/link 变量。
这里有一个完整的模型来演示
turtles-own [my-list]
to setup
clear-all
create-turtles 1
[ set my-list []
]
reset-ticks
end
to go
ask turtles
[ set my-list fput random 10 my-list
print my-list
]
tick
end
我想将来自变量的值存储在列表中,为每个滴答添加新的变量输出。可以说变量在每个滴答声中输出不同的值。为简单起见,这是由公式确定的; 2 * ticks (var = 2 * ticks),因此列表在五个 ticks [0 2 4 6 8] 后应该看起来像这样。但是我无法让它工作。由于 NetLogo 不允许从过去获取值,我该如何处理?
我现在有这样的东西:
ask turtles[
let var_list [ ]
foreach var_list [
set var_list lput var var_list
]
print var_list
]
然而,这只给出空列表或只显示最新 var 值的列表(当我将 let var_list [] 更改为 let var_list [ 0 ] 时)。我怎样才能正确地得到它在 table 中为每个报价输入变量值?
您正在使用 let
创建临时局部变量。跨刻度保留值没有问题,但您确实需要使用全局或 turtle/patch/link 变量。
这里有一个完整的模型来演示
turtles-own [my-list]
to setup
clear-all
create-turtles 1
[ set my-list []
]
reset-ticks
end
to go
ask turtles
[ set my-list fput random 10 my-list
print my-list
]
tick
end