2
我希望你能幫助我。測試半徑中補丁的顏色
我嘗試測試半徑100中的一個修補程序是否爲黃色,但看起來不起作用。 事實上,情況似乎總是假的,雖然它不是這樣的......
ifelse ([pcolor] of patches in-radius 100 = yellow)
[do something]
[do something else]
什麼解決的辦法? 謝謝。
我希望你能幫助我。測試半徑中補丁的顏色
我嘗試測試半徑100中的一個修補程序是否爲黃色,但看起來不起作用。 事實上,情況似乎總是假的,雖然它不是這樣的......
ifelse ([pcolor] of patches in-radius 100 = yellow)
[do something]
[do something else]
什麼解決的辦法? 謝謝。
首先,你的代碼不工作的原因:[pcolor] of patches in-radius 100
將返回該半徑內所有補丁的顏色列表。例如,該列表可能看起來像
[135 135 105 105 105 85 75 75 65 25 65 75 15]
除了方式方法更長。這些數字是NetLogo's color numbers。 yellow
編號爲45。所以,基本上,你的條件變得
[135 135 105 105 105 85 75 75 65 25 65 75 15] = 45
顯然,大,巨大的名單是不一樣的事,作爲一個數字,因此,你總是假的。
爲了解決這個問題,要使用any?
,像這樣:
ifelse (any? patches in-radius 100 with [ pcolor = yellow ]) ...
patches in-radius 100
給你一個代理集在半徑所有的補丁。 with [ pcolor = yellow ]
只保留那些黃色的補丁。 any?
只是檢查代理集中是否有任何內容。
那麼清楚,如此之快! 謝謝sooooo多! (我不能因爲我的聲望而「投票」你的帖子,太糟糕了,sry:/) – 2014-10-03 23:02:37
很高興幫助!不用擔心投票。感謝您將它標記爲正確!幫助人們跟蹤已經回答的內容。 – 2014-10-04 18:00:38