首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从列表链接到海龟NetLogo

将数据从列表链接到海龟NetLogo
EN

Stack Overflow用户
提问于 2015-01-09 04:46:13
回答 1查看 648关注 0票数 3

我有个问题。我最近开始使用NetLogo,我必须用NetLogo完成我的学习作业,但是我有一个问题。我想在模型中使用Excel文件中的数据。数据集包含两行数字,每行代表一个不同的变量,例如a和b,我想为每个海龟分配一组这两个变量,以便每个海龟都有一个变量a和b的值。但是我不知道如何做到这一点。通过将数据集转换为txt文件,我已经成功地将其加载到模型中。.txt文件中的行由制表符分隔。这是我用来在模型中加载数据集的代码:

代码语言:javascript
复制
 globals [ turtle-data ]
 turtles-own [ awareness income housingtype adopt ]
 to setup
  clear-all
  reset-ticks
  create-turtles 11557
  ask turtles [
   set color white
  ]
  ask turtles [
   setxy random-xcor random-ycor
  ]
 load-turtle-data
 assign-turtle-data
end
to load-turtle-data
  ifelse ( file-exists? "input-data.txt" ) [
    set turtle-data []
    file-open "input-data.txt"
    while [ not file-at-end? ][
       set turtle-data sentence turtle-data (list (list file-read file-read))
    ]
   user-message "File loading complete!"
   file-close
   ]
   [
      user-message "There is no input-data.txt file in current directory!" 
   ]
end
to assign-turtle-data
  assign-income  
  assign-housingtype
end
to assign-income
  foreach turtle-data [
  ask turtles [ set income item 0 ? ]
  ;link to turtle-data
 ]
end
to assign-housingtype
  foreach turtle-data [
  ask turtles [ set housingtype item 2 ? ]
  ;link to turtle-data
 ]
end

如何将数据集中的值链接到海龟的正确变量?我的问题的替代解决方案也是受欢迎的。

EN

回答 1

Stack Overflow用户

发布于 2015-01-14 02:51:45

解决数据导入部分的工作做得很好。我实际上一直在开发一个扩展来做这件事,但是看起来你根本不需要它!现在,对于你的问题:

我不会创建一堆海龟(我假设每个数据行都有一个),而是在迭代数据时逐个创建海龟:

代码语言:javascript
复制
to setup-turtles
  foreach turtle-data [
    crt 1 [
      set income item 0 ?
      set housingtype item 1 ?
    ]
  ]
end

这简化了将数据分配给单个海龟的问题,而不必处理索引或who编号(这是其他解决方案所需的)。它还可以在您添加或删除数据时自动调整海龟的数量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27849198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档