Netlogo 具有表扩展名的两个元素列表

Netlogo 具有表扩展名的两个元素列表,netlogo,Netlogo,我正在尝试为我的模型使用表扩展名。我的代码包括生成表格的表格:from list命令。然而,我得到一个错误,说**“扩展异常:需要两个元素的列表”。我从一个包含两列数字数据的txt文件生成列表。显然,这不是创建双元素列表的正确格式,但我找不到任何描述适当格式的文档。如何生成双元素列表 另外,是否可以构建包含两个以上元素的表?时间在我的表中充当键,但我想构建一个表,使该键能够更新三个不同的变量(因此是一个四列表:ticks variable1 variable2 variable3) 我还欢迎任何

我正在尝试为我的模型使用表扩展名。我的代码包括生成表格的表格:from list命令。然而,我得到一个错误,说**“扩展异常:需要两个元素的列表”。我从一个包含两列数字数据的txt文件生成列表。显然,这不是创建双元素列表的正确格式,但我找不到任何描述适当格式的文档。如何生成双元素列表

另外,是否可以构建包含两个以上元素的表?时间在我的表中充当,但我想构建一个表,使该键能够更新三个不同的变量(因此是一个四列表:ticks variable1 variable2 variable3

我还欢迎任何学习表和数组扩展的好资源(我已经查阅了扩展指南,但还不了解它的诀窍)


用于生成溶质列表的txt文件有两列。左栏为时间,右栏为O2浓度。列由空格分隔

两元素列表如下所示:

[[key1-val1][key2-val2][keyn-valn]]

我将使用
文件打开
文件读取行
while[not file at end?]
原语迭代输入,并使用从输入文件创建对列表。比如:

let the-list []
file-open filename.txt
while [not file-at-end?][
let input file-read-line
;; find the start and end position/index of key and value (X,Y,O,P) using the position primitive on your delimiter
let key substring input X Y
let value substring input O P
let the-pair (list key value)
set the-list lput the-pair the-list
]

可以在表中嵌入表。因此,如果您想要几个值作为键值,只需为每个条目创建一个表,并将它们放在主表中。

谢谢Arthur,我一直在使用您建议的方法。不幸的是,由于我现在使用的数据的大小,构建列表和表变得越来越耗时。您有没有想法创建一个可以直接从excel电子表格中读取的表,而不必花时间显式地构建表?我的表越来越多,包括一个键列表和近100个不同变量的值,这些变量在调用键时必须更新。我认为没有办法做到这一点。问题是每次运行模型时都必须运行此代码吗?如果是这样,可以通过将表写入文件来跳过此操作。如果先使用table:to list将表转换为列表,然后使用file write将其写入文件,则可以使用file read和table:from list将其再次转换回。我还没有测试过,但我无法想象它不会为你节省时间。不过,我现在不知道有多少。@user3887089:建议你在上面提出一个新问题再次感谢你的帮助。问题是,由于模型的输入正在更改,因此该表经常更改。因此,我认为仅仅将表写入一个文件是没有帮助的,因为它是以NetLogo可以读取的格式构建表,这需要很长时间。相反,大型数据集是在excel中立即生成的,因此理想的解决方案是找到一种方法来创建一个NetLogo表,该表可以读取excel文件的本机格式。正如赛斯所建议的,我将为一个新问题打开这个话题。干杯
let the-list []
file-open filename.txt
while [not file-at-end?][
let input file-read-line
;; find the start and end position/index of key and value (X,Y,O,P) using the position primitive on your delimiter
let key substring input X Y
let value substring input O P
let the-pair (list key value)
set the-list lput the-pair the-list
]