首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netlogo:将patch变量值设置为相邻的patch变量值

Netlogo:将patch变量值设置为相邻的patch变量值
EN

Stack Overflow用户
提问于 2021-05-25 03:56:48
回答 1查看 36关注 0票数 1

我是NetLogo的新手,正在尝试模拟反复暴雨后的洪水。该模型每隔20个刻度在随机斑块上生成洪水海龟,并具有随机生成的地形。补丁变量包括水位容量。

高程是随机生成的,并且水位=高程+ flood_no,或者高程加上每个补丁顶部的洪水龟的数量。到目前为止,我已经能够让洪水龟下山了。我的问题是,一旦达到每个补丁的容量,我希望它们汇集在一起,然后溢出到适当的相邻补丁。

我试图让每个补丁通过将其等同于其邻居中发现的最低水位值来确定其容量。然而,当我运行模型时,NetLogo给了我具有最低水位值的相邻补丁的补丁坐标,而不是实际的水位值本身:

代码语言:javascript
复制
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 

有没有什么方法可以改变它,让它给我补丁变量的值,而不仅仅是补丁的位置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-25 18:45:17

min-one-of是关于识别补丁的,所以你可以分两步来完成:

代码语言:javascript
复制
ask patches
[ let low-patch set min-one-of neighbors [water-level]
  set capacity [water-level] of low-patch
]

但更直接的是,您可以使用min找到变量的最小值

代码语言:javascript
复制
ask patches [set capacity min [water-level] of neighbors ]

在内部,NetLogo使用of原语为相邻的补丁创建一个水位值列表,然后min只取该列表中的最小值。因此,在两个步骤中,它将如下所示:

代码语言:javascript
复制
ask patches
[ let nbr-levels [water-level] of neighbors
  set capacity min nbr-levels
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67678241

复制
相关文章

相似问题

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