我正在模拟鲑鱼种群动态,我有一个关于温度和流量的真实数据集。我想在每个滴答期间分配这两个参数的每日值,将第一个滴答设置为数据集中的第一天,并使其继续读取文件。
我该怎么做?
Jacopo
答案 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阅读器。
您建议您重复阅读该文件。然后,您必须将文件保持打开以进行整个模拟。您可以从每个打开的文件中读取一行中的每个刻度。
除非它是一个非常大的数据集,否则我宁愿在一开始就将所有数据读入两个全局列表(例如temparatures
和flows
)。由于您要更新每个tick的值,请使用当前刻度值来索引这些列表。例如,set temp item ticks temperatures
。 (这里我假设你只使用tick
来推进刻度计数器,这样就可以得到连续的整数。如果你在开始阅读数据之前tick
,你需要使用{{1 }}。)
HTH