我想將變數中的值存盤在串列中,為每個刻度添加新的變數輸出。假設變數每個刻度輸出不同的值。為簡單起見,這是由公式確定的;2 * 滴答聲(var = 2 * 滴答聲),因此串列在五次滴答后應該看起來像這樣 [0 2 4 6 8]。但是,我無法使其正常作業。由于 NetLogo 不允許采用過去的值,我將如何處理?
我現在有這樣的事情:
ask turtles[
let var_list [ ]
foreach var_list [
set var_list lput var var_list
]
print var_list
]
然而,這僅提供空串列或僅顯示最新 var 值的串列(當我將 let var_list [] 更改為 let var_list [ 0 ] 時。如何讓它為每個刻度正確輸入表中的變數值?
uj5u.com熱心網友回復:
您正在使用let創建臨時區域變數。跨刻度保留值沒有問題,但您確實需要使用全域或海龜/補丁/鏈接變數。
這是一個完整的模型來演示
turtles-own [my-list]
to setup
clear-all
create-turtles 1
[ set my-list []
]
reset-ticks
end
to go
ask turtles
[ set my-list fput random 10 my-list
print my-list
]
tick
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/398306.html
上一篇:從列中的串列中洗掉重復項
下一篇:使用等差數列作為索引時的問題
