Netlogo-行为空间

时间:2019-03-14 07:25:46

标签: netlogo

我想使用行为空间进行实验。但是,所需的实验次数取决于列表的长度,列表的长度取决于加载的外部数据。因此,我想执行以下不支持的操作:

enter image description here

这样做的正确方法是什么?谢谢

1 个答案:

答案 0 :(得分:2)

您注意到您使用.bat或.sha文件来执行此操作。如果是这样,这是一个.bat解决方案。但是,我不确定您的数据是什么样子—在此示例中,我只是使用了csv文件中的条目数来确定所需的运行次数。

因此,我有一个名为“ example_data.csv”的数据文件,如下所示:

1
100
1000
10000

我有一个.nlogo文件,它带有一个Input小部件,该小部件定义了一个名为global的{​​{1}}变量。我为BehaviorSpace实验取出了xml,并将其保存在名为“ experiment_base.xml”的文件中-看起来像:

n_runs

我有一个.bat文件:

  • 计算我的“ example_data.csv”中的条目数
  • 读取“ experiment_base.xml”文件,并将<experiments> <experiment name="experiment" repetitions="1" sequentialRunOrder="false" runMetricsEveryStep="false"> <setup>setup</setup> <go>tick</go> <timeLimit steps="5"/> <metric>count turtles</metric> <steppedValueSet variable="n_runs" first="1" step="1" last="1"/> </experiment> </experiments> 替换为上面读取的数字,然后将其写为名为“ mod_experiments.xml”的新实验
  • 使用新生成的实验文件运行实验

整个蝙蝠文件如下:

last="1"

这将输出4个实验的结果,因为我的数据文件中有4个值。如果我修改csv中的条目数并重新运行.bat文件,则会得到相应数量的运行结果。