【问题标题】:How to record location of patches visited by a turtle in net logo, and reord data for each turtle如何在netlogo中记录乌龟访问的补丁的位置,并记录每个乌龟的数据
【发布时间】:2020-04-15 17:34:42
【问题描述】:

我正在使用 NetLogo 创建一个模拟蜜蜂访问花朵并为它们授粉的模型。为了了解遗传多样性,我希望每只海龟每次访问一朵花时都记录它访问的一朵花的位置。这意味着我知道最后记录的花可能已被生成列表中它上面的任何花授粉。我将花朵建模为随机生成的黄色斑块,一旦蜜蜂从它们身上收集花粉,它们就会变成蓝色,如果蜜蜂给它们授粉,它们就会变成白色,尽管只有当蜜蜂有足够的花粉来访问它们时才会发生这种情况。授粉。

还需要这些信息来明确每个海龟的个体。我希望在运行后它可以生成一个包含每只海龟的文件,并在它们下面列出它们按顺序访问过的花朵的位置。

我想象它会在每次蜜蜂访问一朵花时工作,它会存储该花的 x 和 y 坐标。

 to store-location
  ask turtles [
     if ((pcolor = yellow) or (pcolor = blue) or (pcolor = white))
       set xy_list fput (list int xcor int ycor) xy_list
     ]
   ]
 end

【问题讨论】:

  • 您已经拥有的代码是给您错误消息、意外行为还是什么?

标签: database netlogo agent recording


【解决方案1】:

我没有对此进行测试,但它对我来说几乎是正确的。事实上,我很惊讶它没有工作(你没有解释问题)。但不是:

set xy_list fput (list int xcor int ycor) xy_list

set xy_list fput patch-here xy_list

您在列表中添加新条目的方法很好。但是你拥有它的方式会给你列表列表。相反,您可以存储补丁(这样您就不需要使用int),然后您将拥有一个包含patch 1 4 等项目的单级列表,以后会更容易阅读。

然后,当运行完成时,您可以将列表写入文件。如果您需要这方面的帮助,请提出单独的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2015-06-14
    相关资源
    最近更新 更多