Netlogo 创建一个";“行程表”;补丁代理集

Netlogo 创建一个";“行程表”;补丁代理集,netlogo,Netlogo,我正在建立一个模型,海龟们根据不同的搜索标准“搜索”一个资源补丁的子集 我试图构建报告,返回一个排序列表或补丁的代理集,海龟可以将其作为搜索路线 由于某种原因,我无法将行程存储在海龟拥有的变量中 一个例子是: to-report availability let sorted-patches sort-on [ ( (space - occupants) / space ) ] patches with [space > 0] report sorted-patches

我正在建立一个模型,海龟们根据不同的搜索标准“搜索”一个资源补丁的子集

我试图构建报告,返回一个排序列表或补丁的代理集,海龟可以将其作为搜索路线

由于某种原因,我无法将行程存储在海龟拥有的变量中

一个例子是:

to-report availability

    let sorted-patches sort-on [ ( (space - occupants) / space ) ] patches with [space > 0]

    report sorted-patches

end 
当我在控制台中执行
显示可用性时
,它会打印出我期望的补丁程序的有序列表

但如果我这样做了

let test-variable availability
show test-variable
它回来了

ERROR: Nothing named TEST-VARIABLE has been defined. 
不知何故,这是一个范围问题吗?我能否不使用
let
作为观察者

这是类型问题吗?我可以不将agentset存储为命名变量吗

有没有办法用列表而不是代理集来做同样的事情


谢谢你的描述,这是一个范围问题。但问题不在于您试图对观察者使用
let
,而是
let
的范围。NetLogo并不是真正意义上的交互式,您正在尝试这样做-由
let
创建的变量在行尾被丢弃

如果键入
let test 3
,单击enter,然后键入
show test
,您将得到相同的错误。但是,如果您键入
让test3显示test
,则它将返回3


为什么您需要从控制台获取此信息?如果它是用于测试的,那么您可以按照您已经找到的方式查看它—只需
显示可用性
。如果您在模型运行时对海龟使用它,那么它不是交互式的,也没有问题。

根据您的描述,这是一个范围问题。但问题不在于您试图对观察者使用
let
,而是
let
的范围。NetLogo并不是真正意义上的交互式,您正在尝试这样做-由
let
创建的变量在行尾被丢弃

如果键入
let test 3
,单击enter,然后键入
show test
,您将得到相同的错误。但是,如果您键入
让test3显示test
,则它将返回3


为什么您需要从控制台获取此信息?如果它是用于测试的,那么您可以按照您已经找到的方式查看它—只需
显示可用性
。如果您在模型运行时对turtles使用它,那么它不是交互式的,也没有问题。

我只是在控制台中尝试了
让测试3
显示测试
,得到了相同的错误,所以看起来这是可能的问题,解决方法是什么?我将
测试变量
添加到
全局变量
中,并使用
设置
,它起了作用,所以我明天将添加它作为答案,除非有更好的解决方法或方法在发布的控制台上使用
let
创建变量作为观察者。我只是尝试了
let test 3
show在控制台中测试
,得到相同的错误,因此看起来这是可能的问题,解决方法是什么?我将
测试变量
添加到
全局变量
中,并使用
设置
,效果很好,所以我明天将添加它作为答案,除非有更好的解决方法,或者在发布的控制台上使用
let
创建变量作为观察者。是的,我习惯于尝试一些我不确定的东西在将其添加到文件之前,使用R或python终止。谢谢,我习惯于在终端中用R或python尝试一些我不确定的东西,然后再将它们添加到文件中。谢谢