随着时间的推移创建累积列表

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