我在 Julia 中有一个基于代理的模型,我需要为其收集数据,我的运行方式如下:
ensemblerun!(models, agent_step!, dummystep, 1000; adata, parallel = true);
它实际上会报告每一步的值,但我只想每 50 步收集一次数据。
我应该在哪里引入这样的条件:
steps mod 50 == 0 # then proceed collecting data
我真的不知道在哪里插入任何类型的条件...这似乎是框架的硬连线行为...但也许我错过了重点,作为 Julia Agents 的新手
尝试运行模拟:
ensemblerun!(models, agent_step!, dummystep, 1000;
adata, parallel = true, when=((m,s)->s % 50 == 1))
更明确地说,
when
参数可以是一个返回布尔值的函数,指示何时跟踪。该函数的参数是(model,step_number)并且是不言自明的。