Netlogo-为什么是;如果;声明被忽略了?

Netlogo-为什么是;如果;声明被忽略了?,netlogo,Netlogo,我是Netlogo的新手,我尝试模拟一个大脑网络,其中海龟代表大脑区域,而“fclinks”代表这些大脑区域之间的链接,随着时间的推移,这些大脑区域的重量(“重量边缘”)会减少 这是一段代码: ask fclinks [ set weight-edge weight-edge - fc-change ] ; change thickness of links ask fclinks [ if weight-edge < 1000 [ set shape "medium&quo

我是Netlogo的新手,我尝试模拟一个大脑网络,其中海龟代表大脑区域,而“fclinks”代表这些大脑区域之间的链接,随着时间的推移,这些大脑区域的重量(“重量边缘”)会减少

这是一段代码:

ask fclinks
[ set weight-edge weight-edge - fc-change ]
; change thickness of links
ask fclinks
[ if weight-edge < 1000
  [ set shape "medium"
  ]
  if weight-edge < 500
  [ set shape "thin"
    ask symptom 3
    [ set color 15 ]
  ]
]
end
ask fclinks
[设置权重边缘权重边缘-fc更改]
; 更改链接的厚度
询问fclinks
[如果重量边缘<1000
[设置形状“中等”
]
如果重量边缘<500
[将形状设置为“薄”
询问症状3
[设置颜色15]
]
]
结束
“症状3”是另一个节点,如果权重边通过某个阈值(当权重边低于500时),该节点应更改颜色。但是,在达到此阈值之前,节点已在更改颜色

为什么会这样


谢谢

如果权重较低
如果权重边缘<500
则节点会改变颜色,但是您的问题的措辞是这样的,我认为您不希望节点在达到阈值之前改变颜色,因此颜色表示权重较高。如果这是正确的解释,那么问题只是你有<而不是>

嘿,谢谢你的回答!对不起,问题不清楚。我的意思是,当权重边小于500时,我希望颜色改变。代码看起来合理-您是否进行过基本调试,例如检查过一个过早改变颜色的链接,并查看权重边值是否合理?您可以在界面上安装一个监视器,用于报告fclinks的
min[weight edge]
以查看何时会发生颜色变化谢谢,该监视器非常有用!我发现有一些链接从一开始就<500。这就是为什么颜色变化发生得太早的原因。我改变了它,只为开始>500的链接创建了一个新的if语句。再次感谢你的帮助!我建议使用(ifelse cond1[act1]cond2[act2]…else[act-n])结构来保证您只指定了一个选项以及可能发生的所有其他选项。您询问重量边缘是否<1000并执行某些操作,然后不要退出并立即询问重量边缘是否<500并执行其他操作。这两个都可能是真的-那又怎样?哪一个应该统治?等等。如果您翻转顺序,首先测试<500,然后测试<1000失败,该怎么办?等