如何从 Julia 代理每 n 个刻度收集模拟数据

问题描述 投票:0回答:1

我在 Julia 中有一个基于代理的模型,我需要为其收集数据,我的运行方式如下:

ensemblerun!(models, agent_step!, dummystep, 1000; adata, parallel = true);

它实际上会报告每一步的值,但我只想每 50 步收集一次数据。

我应该在哪里引入这样的条件:

steps mod 50 == 0 # then proceed collecting data

我真的不知道在哪里插入任何类型的条件...这似乎是框架的硬连线行为...但也许我错过了重点,作为 Julia Agents 的新手

julia agent
1个回答
0
投票

尝试运行模拟:

ensemblerun!(models, agent_step!, dummystep, 1000; 
  adata, parallel = true, when=((m,s)->s % 50 == 1))

更明确地说,

when
参数可以是一个返回布尔值的函数,指示何时跟踪。该函数的参数是(model,step_number)并且是不言自明的。

© www.soinside.com 2019 - 2024. All rights reserved.