首页 > 解决方案 > 在 NetLogo 中读取 csv 文件

问题描述

我在读取 NetLogo 中名为 Window.csv 的 CSV 格式文件时遇到问题。请您逐步指导我导入 CSV 文件吗?我的第一个问题:我是否必须将这个文件放在特定的文件夹中,以及如何将文件的位置介绍给 NetLogo?我尝试了一些方法:1-在观察者中编写此代码:

csv:from-file "/C:/Program Files/NetLogo 6.0.3/to/Window.csv"

我遇到了这个错误:没有定义名为 CSV:FROM-FILE 的内容。2- 我在 NetLogo 的代码空间中尝试了这段代码:

set filename “C:\Program Files\NetLogo 6.0.3\Window.csv”
to-report sum-columns [ file ]
  file-open file
  set result csv:from-row file-read-line
  while [ not file-at-end? ] [
    let row csv:from-row file-read-line
    set result (map [?1 + ?2] result row)
  ]
  file-close
  report result
end

我遇到了这个错误:keyword expected 3-我尝试了在这个网站上找到的这段代码:

extensions [csv]
globals [data variable]
to setup
file-close-all 
file-open "Window.csv"
;; read the data all at once by using csv:from-file
set data csv:from-file "Window.csv"
reset-ticks
end

to go
if file-at-end? [stop]
;; extract value from the list, using item 0 to remove the list, and just keep the value
set variable item 0 item ticks data
tick  
if ticks = length data [stop]
show variable
end

但什么也没发生。提前非常感谢。

标签: csvnetlogo

解决方案


最简单的方法是将 NetLogo 模型 (.nlogo) 和 CSV 文件 (.csv) 保存在同一个文件夹中,如下所示:

在此处输入图像描述

然后,您可以csv像在第二个示例中一样使用扩展,如下所示:

extensions [csv]
globals [ data ]

to setup
  ca
  set data csv:from-file "example_data.csv"
  print data
  reset-ticks
end

运行该代码后,您将示例数据存储在data变量中。您也可以以类似的方式使用相对寻址。例如,如果您将数据存储在与模型相同的文件夹中的文件夹中:

在此处输入图像描述

其中data_folder包含您要加载的 CSV 文件,您可以执行

set data csv:from-file "data_folder/example_data.csv"

如果您不知道文件与模型存储位置相关的位置,您可以随时提供完整地址。如果我的 C 驱动器上有一个名为“data_folder”的文件夹,其中包含我的“example_data.csv”,我可以这样称呼它:

set data csv:from-file "C:/data_folder/example_data.csv"


编辑 - 更多细节:

我将向您展示我从上面的第一个示例中获得的输出使用此示例 .csv:

在此处输入图像描述

该文件名为“example_data.csv”,存储在与我的 NetLogo 文件相同的文件夹中。在我的 NetLogo 文件中,我只有:

extensions [csv]
globals [ data ]

to setup
  ca
  set data csv:from-file "example_data.csv"
  print data
  reset-ticks
end

然后,在我的界面上,我在界面上放了一个按钮setup来调用上面的过程:

在此处输入图像描述

如果我按下setup按钮,将执行代码并print data运行语句,以便在命令中心看到结果:

在此处输入图像描述

从那里,您可以看到 .csv 已加载,因此每一行都作为列表存储在名为 .csv 的列表中data


推荐阅读