在Netlogo中为海龟加载数据:循环似乎停止了

问题描述

我正在尝试将数据从R加载到Netlogo。我总是得到错误

无法将海龟移出世界边缘。
乌龟8运行SET时发生错误
由过程LOAD-DATA调用
由过程SETUP调用
由“设置”按钮调用

我定义了世界优势


      let minworldx r:get "min(dataTurtle$bcx)"
      let maxworldx r:get "max(dataTurtle$bcx)"
      letminworldy r:get "min(dataTurtle$bcy)"
      let maxworldy r:get "max(dataTurtle$bcy)"
      resize-world minworldx maxworldx minworldy maxworldy

乌龟的定义如下


    set dataTurt r:get "dataTurtle" ; transfers data to Netlogo
     print dataTurt  ; just to test
      ask turtles  ; reads in data to the variables
      [ set color 14
        set heading 1
        set xcor item who Item 1 dataTurt
        set ycor item who Item 2 dataTurt
        set label item who Item 0 dataTurt
        set P_FertSpace 2000  ; just a value test value
        
        ]

如何确保我创建的所有海龟都获得了相关数据?

解决方法

由于存在错误,循环正在停止。错误消息告诉您该错误是因为您试图将海龟放到不存在的地方。

这个可以解决吗?

  let minworldx floor r:get "min(dataTurtle$bcx)" - 1
  let maxworldx ceiling r:get "max(dataTurtle$bcx)" + 1
  let minworldy floor r:get "min(dataTurtle$bcy)" - 1
  let maxworldy ceiling r:get "max(dataTurtle$bcy)" + 1
  resize-world minworldx maxworldx minworldy maxworldy

我分别使用floorceiling进行四舍五入,然后再加上或减去1以增加安全性。这应该确保乌龟不在世界边界之外。