如何在NetLogo中存储我要求死的代理的xy坐标?

时间:2016-05-16 14:45:30

标签: netlogo

在我的模型中,我生产了很多海龟,这会减慢它的速度。我可以通过杀死它们并拥有一个全球计数器来解决这个问题:

ask turtles [
 if energy < 0 [
 set turtle-count turtle-count + 1
 die
  ]]

但我希望能够提取这些代理商的'who','xcor'和'ycor'。我怎样才能做到这一点?

由于

1 个答案:

答案 0 :(得分:3)

您可以将这些值保存在外部文件中。我想这可以帮助你设置一下,不知道你是否可以复制粘贴。

使用以下方式设置模拟:

to setup
    ....
    set-current-directory user-directory ;;choose directory of file  
    file-open "database.txt" ;;choose any name for your file  


    ask turtles 
    [
         if energy < 0 
         [  
             write-to-file ;;go to the writing section  
             set turtle-count turtle-count + 1  
             die  
         ]
    ]


    ....
end 



to write-to-file  
    file-write who  
    file-write xcor  
    file-write ycor  
    file-print "" ;;new line for next turtle
end

结束你的模拟
file-close-all ;;save the file

如果你打开txt文件它可能看起来像一团糟,但导入它,例如,在excel中用空格分隔,你将能够很好地阅读所有内容

EDIT1

您还可以执行以下操作,这可能会加快您的模拟速度(而不是要求每只乌龟都使用if-function)

ask turtles with [energy < 0] 
     [  
         write-to-file ;;go to the writing section  
         set turtle-count turtle-count + 1  
         die  
     ]

也许有经验的人可以评论是否是这种情况?