Variables Netlogo:将面片变量值设置为相邻面片变量值
我是NetLogo的新手,尝试模拟反复暴雨后的洪水。该模型每20个滴答声在随机斑块上生成洪水海龟,并且具有随机生成的地形。斑块变量包括[水位][高程][容量] 高程是随机生成的,[水位]=[高程]+[洪水编号],或高程加上每个斑块顶部的洪水海龟数量。到目前为止,我已经能够让洪水海龟下山了。我的问题是,我希望它们汇集在一起,然后在达到每个补丁的[容量]后溢出到相应的相邻补丁 我试图让每个斑块通过将其等同于其邻居中发现的最低水位值来确定其容量。但是,当我运行模型时,NetLogo会为具有最低水位值的相邻面片提供面片坐标,而不是实际水位值本身:Variables Netlogo:将面片变量值设置为相邻面片变量值,variables,netlogo,patch,nearest-neighbor,flood-fill,Variables,Netlogo,Patch,Nearest Neighbor,Flood Fill,我是NetLogo的新手,尝试模拟反复暴雨后的洪水。该模型每20个滴答声在随机斑块上生成洪水海龟,并且具有随机生成的地形。斑块变量包括[水位][高程][容量] 高程是随机生成的,[水位]=[高程]+[洪水编号],或高程加上每个斑块顶部的洪水海龟数量。到目前为止,我已经能够让洪水海龟下山了。我的问题是,我希望它们汇集在一起,然后在达到每个补丁的[容量]后溢出到相应的相邻补丁 我试图让每个斑块通过将其等同于其邻居中发现的最低水位值来确定其容量。但是,当我运行模型时,NetLogo会为具有最低水位值的
patches-own [elevation water-level capacity]
breed [floods flood]
floods-own [flood_no]
ask patches [set capacity min-one-of neighbors [water-level]] ;this gives me the patch coordinates with the lowest water-level out of each patches' neighbors
有什么方法可以改变它,让它给我补丁变量值而不是补丁位置?
min其中一个是关于识别补丁的,所以你可以分两步完成:
ask patches
[ let low-patch set min-one-of neighbors [water-level]
set capacity [water-level] of low-patch
]
但更直接地说,您可以使用min
找到变量的最小值:
ask patches [set capacity min [water-level] of neighbors ]
在内部,NetLogo使用of
原语为相邻补丁创建一个水位值列表,然后min
仅取该列表中的最小值。因此,分两步,它看起来像:
ask patches
[ let nbr-levels [water-level] of neighbors
set capacity min nbr-levels
]
如果我理解正确,您需要邻居的最低水位:设置邻居的最小容量[水位]
谢谢!我以{ask patches[让cap min的一个邻居[水位]设置cap的容量[水位]}结束,但你的第二个解决方案更简洁,并且教会我min甚至可以单独使用,因为我以前只将其视为min的一个。再次感谢!