NetLogo:如何从数据集中读取值,在每个滴答处分配值?

时间:2014-11-18 15:32:18

标签: file-io netlogo

我正在模拟鲑鱼种群动态,我有一个关于温度和流量的真实数据集。我想在每个滴答期间分配这两个参数的每日值,将第一个滴答设置为数据集中的第一天,并使其继续读取文件。

我该怎么做?

Jacopo

1 个答案:

答案 0 :(得分:0)

NetLogo具有相当广泛的文本文件IO功能(因此也适用于CSV)。您显然将数据放在一个简单的CSV文件中,因此您需要使用这些功能。有关简单的IO示例,请参阅https://subversion.american.edu/aisaac/notes/netlogo-intro.xhtml#file-based-io还有许多在网络上阅读CSV文件的示例(例如http://netlogoabm.blogspot.com/2014/01/reading-from-csv-file.html)。不幸的是,NetLogo不提供CSV阅读器。

您建议您重复阅读该文件。然后,您必须将文件保持打开以进行整个模拟。您可以从每个打开的文件中读取一行中的每个刻度。

除非它是一个非常大的数据集,否则我宁愿在一开始就将所有数据读入两个全局列表(例如temparaturesflows)。由于您要更新每个tick的值,请使用当前刻度值来索引这些列表。例如,set temp item ticks temperatures。 (这里我假设你只使用tick来推进刻度计数器,这样就可以得到连续的整数。如果你在开始阅读数据之前tick,你需要使用{{1 }}。)

HTH