如何在 Netlogo 中检索 csv 文件的值?

问题描述 投票:0回答:2

我正在使用 Netlogo 中的 CSV 扩展从表格中获取数字。该文件有一个标题和一列,共 1700 行。

我的每个刻度都需要从 CSV 表中获取下一个数字。

示例:

Table
67,
81,
54

for tick 1 set precipitation 67

for tick 2 set precipitation 81

for tick 3 set precipitation 54

等等

如何做到这一点?

csv netlogo
2个回答
4
投票

前面的答案很好,除了:记住

csv:from-row
产生一个 list,而不是数字。降水量将是该列表中的唯一项目。要获得降水量,您需要:

set precipitation first (csv:from-row file-read-line)


3
投票

扩展程序的官方帮助页面上有一个示例,演示了如何从具有单列的表中提取值。请参阅下面的修改版本,包括 @SteveRailsback 使用 first

 以避免列表输出的建议。

extensions [csv] globals [ precipitation ] to setup clear-all file-close-all ; Close any files open from last run file-open "test.csv" set precipitation csv:from-row file-read-line ; use it once to skip the header ; other setup goes here reset-ticks end to go if file-at-end? [ stop ] set precipitation first csv:from-row file-read-line tick end
如果您有一个包含 

多个列的表,我建议存储表标题并使用它来标识列索引。

extensions [csv] globals [ csv_headers precipitation other_var ] to setup clear-all file-close-all ; Close any files open from last run file-open "test.csv" set csv_headers csv:from-row file-read-line ; store headers to find right column reset-ticks end to go if file-at-end? [ stop ] let current_line csv:from-row file-read-line ; read the full line set precipitation item (position "precipitation" csv_headers) current_line ; pick value from column with precipitation header set other_var item (position "other_var" csv_headers) current_line ; repeat for another variable tick end
    
© www.soinside.com 2019 - 2024. All rights reserved.