Netlogo-沙堆模型-更新计数-运行时错误
在每次滴答声中,我都会要求每个补丁根据其8个邻居的更新计数。如果超过4个邻居的计数大于或等于1,则它们将更新1。如果超过4个邻居的计数小于或等于1,则补丁计数应设置为0 运行代码时,出现以下错误: >=运算符只能用于两个数字、两个字符串或两个相同类型的代理,但不能用于真/假和数字。运行修补程序27-22时出错>=由过程调用SPREAD-ERRORS由过程GO调用Netlogo-沙堆模型-更新计数-运行时错误,netlogo,Netlogo,在每次滴答声中,我都会要求每个补丁根据其8个邻居的更新计数。如果超过4个邻居的计数大于或等于1,则它们将更新1。如果超过4个邻居的计数小于或等于1,则补丁计数应设置为0 运行代码时,出现以下错误: >=运算符只能用于两个数字、两个字符串或两个相同类型的代理,但不能用于真/假和数字。运行修补程序27-22时出错>=由过程调用SPREAD-ERRORS由过程GO调用 你的意思是set n 0,而不是set n n=0 但是为什么set n=0实际上是有效的NetLogo语法,以及它是如何导致您收到错
你的意思是
set n 0
,而不是set n n=0
但是为什么set n=0
实际上是有效的NetLogo语法,以及它是如何导致您收到错误消息的
嗯,n=0
是一个布尔表达式,其值为true
或false
。然后取这个值并将其存储在n中。效果就像你写了:
ifelse n = 0 [ set n true ] [ set n false ]
此命令运行后,n将保存一个布尔值。然后下次运行
n>=1
时,您会收到上面的错误消息,因为n不再是一个数字,无法与1进行比较。感谢您的帮助。代码现在运行得非常好!!
ifelse n = 0 [ set n true ] [ set n false ]