【问题标题】:Error in NetLogo: Nothing named x has been definedNetLogo 中的错误:没有定义任何名为 x 的内容
【发布时间】:2014-09-16 00:35:04
【问题描述】:

我从 NetLogo 导出了一个景观。我在 Netlogo 中导入了同样的景观。在这种情况下,我添加了另一个特定于补丁“驻留时间”的全局变量:

globals [
list-of-polygons ]

patches-own [ 
area-ha
residency-time 
]

我创建了一个函数来为我的景观中的每个多边形分配一个驻留时间值

to assign-residency-times
set list-of-polygons ([ID-polygon] of patches)
set list-of-polygons remove-duplicates list-of-polygons 
set list-of-polygons remove 0 list-of-polygons
print sort list-of-polygons

foreach list-of-polygons [ 
ask patches with [ ID-polygon = ? ] [ 
if all? patches [pcolor = green] [ 
set residency-time exp(1.02 * area-ha) ]

.... ] ]

我不明白为什么我会收到此错误消息:Nothing named area-ha has been defined。但是,我定义了area-hapatches-own。 此外,当我检查补丁时,所有特定于补丁的全局变量都消失了(见下图)!

提前感谢您的帮助。

【问题讨论】:

  • 嗨皮埃尔,您是否在设置过程中定义了 ha_area ?
  • 感谢Delaye 的回答。不,我没有在设置过程中定义 area-ha。我只定义了一个计算每个多边形面积的过程,面积值对应于变量area-ha。感谢您的帮助。
  • 嗨 Pierre,当您尝试初始化 area-ha 时发生了什么?当然,当您定义一个全局变量时,它不是代理或补丁变量......在您的情况下,似乎 area_ha 需要是一个补丁变量。
  • “当我检查一个补丁时,所有特定于补丁的全局变量都消失了”在此处的事件序列中究竟发生在哪里?这似乎很奇怪。

标签: netlogo


【解决方案1】:

我只有 45 声望,所以我不能只发表评论。但是:看起来您还没有将 ID-polygon 定义为补丁变量。这可能会导致代码早期出现问题,这可能会导致代码永远无法编译,这意味着补丁变量永远不会真正添加到“接口”视图中的补丁中。

当然,这是假设您尚未定义名为 ID-polygon 的补丁报告器。没有完整的代码很难判断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 2011-12-21
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多