Netlogo - 行为 Space 覆盖设置变量

Netlogo - Behaviour Space overwriting a set variable

我正在使用 BehaviourSpace 进行 运行 模拟。在我的代码中,我将变量 A(在本例中为近半径)设置为变量 B(检测范围)的 0.25,但在 BehaviourSpace 中,我将变量 A 设置为固定值,并且我有多个变量值B.

代码:

set near-radius detection-range / 4

行为空间:

["near-radius" 4]
["detection-range" 2 8 14 20]

当我运行这些模拟时,变量 A 会保持在固定值 4,还是会根据我的代码更改(到 0.5、2、3.5、5)?什么优先,代码还是 BehaviourSpace?

代码优先。将 BehaviorSpace 视为为您的全局变量提供初始值,或者作为滑块或其他输入小部件上的值。如果您将名为 my-slide 的滑块设置为 5,并且在您的代码中某处显示 set my-slide my-slide + 2,则滑块将实际移动以反映全局变量的更新值。

要获得所需的灵活性,您可以使用 if [behaviorspace-run-number = 0] [set near-radius detection-range / 4] 或类似的方法。当模型不受 BehaviorSpace 控制时,这只会 运行 您的代码行。