NetLogo中如何创建plabel列表并实现最大plabel监控?
解决方法
1. 生成所有补丁plabel的列表
你直接用list plabel无效,是因为plabel是单个补丁的变量,需要通过NetLogo的of关键字遍历所有补丁来收集值:
let plabel-list [plabel] of patches
如果部分补丁的plabel未设置(值为nobody),可以过滤掉空值:
let plabel-list filter [v -> v != nobody] [plabel] of patches
2. 监控器显示最大plabel值
max plabel无效的原因同上,必须先获取所有补丁的plabel值集合,再取最大值。在监控器的输入框中输入:
max [plabel] of patches
如果存在非数值类型的plabel(比如字符串),会触发报错,这时候可以先过滤出数值类型的值再计算:
max filter is-number? [plabel] of patches
要是所有补丁都还没设置有效的plabel值,为避免报错可以添加默认值处理:
ifelse any? patches with [is-number? plabel] [max filter is-number? [plabel] of patches] [0] ; 可替换为你需要的默认值
内容的提问来源于stack exchange,提问作者Jaclyn Soleil
相关产品推荐
相关产品推荐

