我有一个名为“Males.csv”的CSV文件,其中有三列“turning_angles”“speed”“step_length”
我在空白环境中创建了一个非常简单的代理模型
to set-up
clear-all
reset-ticks
ask patches [set pcolor green]
ask n-of home patches [set pcolor brown]
ask patches with [pcolor = brown] [
sprout n-turtles [set breed turtle set shape "arrow" set sex one-of ["male" "female"]]]
end
字符串
我想写一个名为step
和turn
的程序,代理从csv中的列中移动和提取参数。是否可以将csv列转换为列表,然后从数据的分布中随机选择?
例如作为伪代码。
turtles-own [step-length turn]
to step
ask turtle fd random step-length from_column "step_length" "Males.csv"
end
to turn
ask turtle fd random turn from_column "turning_angles" "Males.csv"
end
to go
ask turtles [step turn]
end
型
1条答案
按热度按时间bgibtngc1#
有CSV-extension。你也可以在模型库中找到一个示例模型(参见CSV Example)。
扩展程序逐行读取CSV文件,因此您需要循环并将列的值逐个提取到列表中。如果您保存您的分布而不是按列而是按行保存,您的生活会更轻松一些,但当然它也适用于列。您可以使用
one-of
绘制该列表的随机项。我附上了一个代码示例,说明如何解决下面的问题。
字符串