Netlogo Netologo行为空间:让每个代理报告值

Netlogo Netologo行为空间:让每个代理报告值,netlogo,behavior,Netlogo,Behavior,我希望在我的模型中运行行为空间扫描,并让每个代理在结果中报告各自拥有的值 下面是我用来要求每个代理报告值的代码 to-report wrapup ask artcollectors [ type who type " " type num-artcollectors type " " type num-subjectmatters type " " type c-artcollection-size type " "

我希望在我的模型中运行行为空间扫描,并让每个代理在结果中报告各自拥有的值

下面是我用来要求每个代理报告值的代码

to-report wrapup 

  ask artcollectors

  [
    type who
    type " "
    type num-artcollectors
    type " "
    type num-subjectmatters
    type " "
    type c-artcollection-size
    type " "
    type c-self-reference-bias
    type " "
    type c-artdisposal-rate
    type " "
    type c-random-bias
    type " , "
    print clist
  ]
end
当我这样做并向控制台报告时,Netlogo将进行第一次运行并向控制台报告结果,然后Nelogo在第一次运行结束时停止并报告

"Reached end of reporter procedure without REPORT being called.
error while observer running END
  called by procedure WRAPUP
  called by procedure __EVALUATOR"

因此,我发现我在wrapup过程中没有运行正确的语法。有人能推荐我需要使用的神奇词汇吗?

A
to report
过程是一个报告者,因此必须向调用者返回一些值。您的
wrapup
过程实际上是一个命令-代理执行某些操作,然后停止。因此,您应该使用命令过程的声明,
to wrapup
rahter而不是
来报告wrapup

希望这有帮助,
查尔斯

谢谢你的建议。它不起作用。NetLogo似乎坚持只将报告用于行为空间。我的挑战是如何将此过程包装成一个报告,以报告每个代理在何处共享其值。您将
wrapup
放在行为空间的何处?在“测量运行…”下,还是在“最终命令”下?前者需要一名记者,后者只是一个命令。如果
wrapup
必须是报告者,则只需将
report TRUE
放在
end
语句之前。您希望在每次运行结束时,还是在每次迭代结束时使用这些值?再往下看,你最终希望这些值进入一个文件吗?天哪!我责备自己没有考虑在最终命令中插入程序。最后,我要寻找一个打印文件,其中每一行都是对我的代理列表(即艺术品标识符)中的一个内容以及参数变量的单个观察。首先,我希望在每次运行结束时报告值,而不是在每次滴答声时报告值。有指针吗?为了清楚起见,您希望每行显示一个代理的所有值,前面是代理的who编号?这似乎就是
wrapup
过程发送到控制台的内容。CSV扩展非常适合做这种事情。没错!我已经尽了全力,要求每个代理在最后打印一个文件来记录文件类型值。我目前的绊脚石是,有时Netlogo会提前结束一行,并在新行上按顺序打印出下一组值。如果我不能解决这个问题,我将打开一个新问题。非常感谢您指导我在最终命令中使用此过程,并非常感谢您在促进社区发展中所起的作用。