计算特定补丁集群中具有特定值的补丁数量

Count number of patches with specific value within specific clusters of patches

我是 NetLogo 的新手,我仍然在努力解决补丁和代理之间的链接问题。我正在建立一个土地利用变化模型,其中代理人是农民。我模型中的补丁有一个 "lotid-farmer" 值(知道哪个补丁属于哪个农民;所有这些都对应于农民的农场)和一个 "land-use" 值。我正在尝试计算每个 "lotid-farmer"(农场)中有多少 "land-use = 1" 个补丁,并将其分配给代理调用的变量 "forest-size"。我尝试了很多不同的东西,比如这段代码(不起作用):

(foreach lotid-farmer count patches [ land-use = 1 ] set forest-size )

我想知道是否有人可以解释为什么这个陈述没有意义并提出其他可行的方法或有关如何使用 "foreach" 在 NetLogo 中循环的教程?提前谢谢你。

lotid 是一个值。 foreach 需要一个列表和一个命令任务。此外,您的集合运算符没有与之关联的值。

其实我不会用foreach,只是让farmers设置变量。我假设 lotid-farmer 是农民的身份。

ask farmers [ 
   set forest-size count patches with [land-use = 1 and lotid-farmer = myself]
]