我想爲我的模型使用表擴展名。我的代碼包括表:from-list命令來生成表。但是,我收到一個錯誤,說**「擴展異常:預計一個兩元素列表」。我從兩列數字數據的txt文件生成列表。顯然這不是創建雙元素列表的正確格式,但我找不到任何描述適當格式的文檔。如何生成雙元素列表?帶表擴展的兩個元素列表
另外,是否有可能建立一個超過兩個元素的表?時間作爲我的表中的關鍵,但我想建一個臺,使得該鍵將更新三個不同的變量(因此一個四列的表:蜱變量1變量2 variable3)
任何好的資源爲了學習我的表格和數組擴展的方式也很受歡迎(我已經檢查了擴展指南,但沒有它的掛起呢)。
extensions [table]
Globals
[
list-O2
table-O2
]
to setup
make-lsolutes ; loads lists for solute data (based on node 96)
make-tsolutes
to go
if table:has-key? table-O2 ticks
[ update-from-FEM]
tick
end
to make-lsolutes
ifelse (file-exists? "96O214day.txt")
[
set list-O2 []
file-open "96O214day.txt"
while [ not file-at-end? ] [set list-O2 lput file-read list-O2]
file-close
]
[ user-message "There is no 96O214day.txt file in current directory!" ]
end
to make-tsolutes
set table-O2 table:from-list list-O2
end
to update-from-FEM
ask insulation
[ set O2 table:get table-O2 ticks]
end
使溶質列表的txt文件有兩列。左欄是時間,右欄是O2濃度。列由空格分隔。
感謝亞瑟,我一直在使用你建議的方法。不幸的是,由於我現在正在使用的數據的大小,構建列表和表然後耗費時間。您是否有任何想法創建可直接從Excel電子表格中讀取的表格的方法,而不需要經過時間來明確地構建表格?我的表正在增加,以包含一個**鍵列表**和近一百個**值**,用於不同的變量,當調用該鍵時必須更新這些變量。 – user3887089 2014-11-20 14:38:27
我不認爲有這樣做的方法。每次運行模型時都需要運行此代碼的問題是否存在?如果是這樣,您可以通過將表寫入文件來跳過此操作。如果首先使用table:to-list將錶轉換爲列表,然後使用file-write將其寫入文件,則可以使用file-read和table:from-list將其再次轉換回。我沒有測試過它,但我無法想象它不會爲你節省一些時間。雖然我現在不多。 – 2014-11-20 17:17:45
@ user3887089:建議您在其上開一個新問題 – 2014-11-20 17:30:14