我有个问题。我最近开始使用NetLogo,我必须用NetLogo完成我的学习作业,但是我有一个问题。我想在模型中使用Excel文件中的数据。数据集包含两行数字,每行代表一个不同的变量,例如a和b,我想为每个海龟分配一组这两个变量,以便每个海龟都有一个变量a和b的值。但是我不知道如何做到这一点。通过将数据集转换为txt文件,我已经成功地将其加载到模型中。.txt文件中的行由制表符分隔。这是我用来在模型中加载数据集的代码:
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如何将数据集中的值链接到海龟的正确变量?我的问题的替代解决方案也是受欢迎的。
发布于 2015-01-14 02:51:45
解决数据导入部分的工作做得很好。我实际上一直在开发一个扩展来做这件事,但是看起来你根本不需要它!现在,对于你的问题:
我不会创建一堆海龟(我假设每个数据行都有一个),而是在迭代数据时逐个创建海龟:
to setup-turtles
foreach turtle-data [
crt 1 [
set income item 0 ?
set housingtype item 1 ?
]
]
end这简化了将数据分配给单个海龟的问题,而不必处理索引或who编号(这是其他解决方案所需的)。它还可以在您添加或删除数据时自动调整海龟的数量。
https://stackoverflow.com/questions/27849198
复制相似问题