我想在设置时以及运行结束时将所有单独的海龟属性导出到 csv 文件。
我尝试修改 csv 模型来完成此任务,但对 netlogo 和编码还很陌生,因此很难确定如何编写代码以及编写什么代码。我理解这部分代码:
将海龟写入 csv ;我们使用
of
原语来创建一个列表列表,然后
;使用 csv 扩展名将该列表列表写入文件。
csv:海龟的文件“turtles.csv”[(列出 xcor ycor 大小颜色标题)]
结束
但我不确定如何编写代码来收集所有海龟的单个海龟属性(我正在寻找当一个人“检查”单个海龟时显示的属性)。
我正在使用阴谋论模型,并希望分析这两组数据以及初始的滑块参数集。
CSV 扩展确实使这变得非常容易。您需要做的就是将单词“(list”后面的变量列表替换为您想要从海龟中获得的所有变量。这些可以是海龟变量、补丁变量(海龟所在的补丁)或全局变量,例如作为“蜱”。
to write-turtles-to-csv
; we use the `of` primitive to make a list of lists and then
; use the csv extension to write that list of lists to a file.
csv:to-file "turtles.csv" [ (list turtle-var-1 turtle-var-2) ] of turtles
end
这种方法的问题在于它每次都会写入一个新文件,因此您无法在同一文件中从模拟的开始和结束处获取海龟变量。最简单的解决方案是编写两个单独的文件。在设置结束时使用这样的语句:
csv:海龟的文件“turtles-at-setup.csv”[(listturtle-var-1turtle-var-2)]
当代码停止时,相同的语句但具有不同的文件名。
extensions [ csv ] ;this works as an import
to write-turtles-to-csv
; we use the `of` primitive to make a list of lists and then
; use the csv extension to write that list of lists to a file.
csv:to-file "turtles.csv" [ (list turtle-var-1 turtle-var-2) ] of turtles
end