NetLogo 列表和条件修改

Posted

技术标签:

【中文标题】NetLogo 列表和条件修改【英文标题】:NetLogo Lists and Conditional Modification 【发布时间】:2014-02-28 10:09:38 【问题描述】:

我想根据成员是否满足某些条件来选择性地修改列表中的一些成员,但不是全部。例如,在一个值列表中,我想从所有大于 9 的值中减去 9。

我试过了

set nodeext2 map nodeext2 [ifelse-value (? > 9)  [? - 9][?]]

但是得到一个“预期为常数”的错误。我也尝试过 if-else 并玩弄括号。谁能帮我?我觉得好像这可能在某处明确说明,但我一直找不到。

【问题讨论】:

【参考方案1】:

您只是颠倒了map 参数的顺序:报告者必须排在列表之前。试试:

set nodeext2 map [ifelse-value (? > 9)  [? - 9][?]] nodeext2

您在 ifelse-value 上收到“预期为常量”消息,因为编译器预期 map 的第二个参数是一个列表,因此试图将 [ifelse-value (? > 9) [? - 9][?]] 解释为一个(并且由于创建了列表而失败常量,ifelse-value 不是)。

【讨论】:

以上是关于NetLogo 列表和条件修改的主要内容,如果未能解决你的问题,请参考以下文章

设置列表中所有代理的颜色 Netlogo

netlogo怎么学啊?

swarm和netlogo的区别

如何让一只乌龟能够在 Netlogo 中保存其他乌龟 ID?

python和netlogo软件模拟病毒传播仿真模型

python和netlogo软件模拟病毒传播仿真模型