首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetLogo实验装置

NetLogo实验装置
EN

Stack Overflow用户
提问于 2020-03-05 04:50:27
回答 2查看 154关注 0票数 9

我正在研究一个Netlogo的模型,我在理解如何建立一个“实验”方面遇到了问题。在我的模型中,我有一个矩阵,它包含我感兴趣的所有值(总共6),每当满足某个条件(每次X海龟被杀死时),矩阵都会更新,基本上是在那个时候捕获模型的快照。矩阵中的先前值被清除,因此矩阵是1x6,而不是10000x6矩阵,每个快照只更新一行。

我想做的是建立一个实验来运行我的模型几百次,每次收集这个矩阵的第一个X数的快照,或直到Y蜱发生。但我看不出有什么办法能在实验中做到这一点?

这是可行的吗,还是我必须创建100x6 (100个快照),然后以某种方式将该矩阵导出到CSV?

我从来没有在Netlogo上做过实验,所以这可能是非常容易做到的,或者是完全不可能的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-11 00:58:48

如果我正确地理解了您的问题,那么您希望在运行过程中以特定的刻度来报告6个值。这些蜱是通过满足某种条件而不是一定数量的蜱来选择的。NetLogo有一个名为BehaviorSpace的实验管理工具。简单地设置您的数百次运行(可能对滑块上的任何输入都有不同的值)。只输出某些滴答就不那么简单了。

BehaviorSpace对话框中的每一个滴答或结尾都有一个复选标记。如果您将其设置为每一个滴答,那么您可以导出您的六个数字,每个滴答自动。在您的情况下,这样做可能比偶尔尝试和只输出更容易。您可以添加第七个报告,这是正确/假的矩阵是否正在重置此勾标。那么,在后处理过程中,您所要做的就是选择第七个记者为真的行。

如果您想要精确地运行N个快照的模型,那么还需要设置一个全局变量,该变量将在每个快照点上递增。然后,您的BehaviorSpace设置将使用该计数器作为停止条件。

票数 3
EN

Stack Overflow用户

发布于 2020-03-10 21:09:42

我不确定我是否理解你的问题,但通常你会有一个设置函数和一个运行函数,对吗?因此,我猜下面的代码结构应该是您要寻找的代码结构。我已经有一段时间没有使用网络标识了,所以你必须自己找出确切的矩阵代码。

代码语言:javascript
复制
globals your-1by6-matrix your-100by6-matrix

to setup
  ;reset your experiment
end

to run
  ;run your experiment
end

to run100times
  repeat 100[
    setup
    run
    ;save your 1by6matrix into your 100by6matrix
  ]
  ;use your 100by6matrix to plot or export
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60538386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档