NetLogo技术问询:如何统计拥有黄色邻居的patches总数
解决NetLogo统计有黄色邻居的Patch总数问题
嘿,我完全get你的需求啦!你现在用的代码ask patches [ show count neighbors with [pcolor = yellow] ]会让每个patch单独输出自己的黄色邻居数量,但你真正想要的是所有至少拥有一个黄色邻居的patch的总数,对吧?
这里有一行直接就能用的解决方案:
show count patches with [any? neighbors with [pcolor = yellow]]
代码逻辑拆解:
any?是NetLogo里用来判断集合是否非空的关键词,这里它会检查当前patch有没有至少一个黄色邻居,只要存在就返回truepatches with [ ... ]会筛选出所有满足括号内条件的patch,也就是所有有黄色邻居的patch集合count用来统计这个筛选出的patch集合的总数量,正好就是你需要的结果
如果之后你想调整统计条件(比如统计有2个及以上黄色邻居的patch数量),只需要把any?换成具体的计数判断即可:
show count patches with [count neighbors with [pcolor = yellow] >= 2]
内容的提问来源于stack exchange,提问作者Javier Sandoval
相关产品推荐
相关产品推荐

