NetLogo,映射多维变量数组
NetLogo, mapping an array of multidimensional variables
我需要为 3 维变量 (var_1
) 的每个维度估计网络中的平均值。我编写的代码并不能完全解决问题:
set avg-network map mean ([var_1] of turtles)
这样做是计算每只海龟所有三个维度的平均值,而不是计算所有海龟每个维度的平均值。即:
Turtle0 [0 0 0]
Turtle1 [1 1 1]
Turtle2 [2 2 2]
Turtle3 [3 3 3]
给出 [0 1 2 3]
而不是 [2 2 2]
这就是我想要的...
我找到了使用 matrix
扩展名的方法。我做的是:
extensions [ matrix ]
to-report temp-matrix
let m matrix:from-row-list ([var_1] of turtles)
report m
end
to go
let i 0
set avg-network n-values 3 [0]
repeat 3 [
set avg-network replace-item i avg-network (mean matrix:get-column temp-matrix i)
set i (i + 1)
]
end
不是最优雅的,但它可以解决问题。如果有人知道另一种方式,我很高兴听到!
我需要为 3 维变量 (var_1
) 的每个维度估计网络中的平均值。我编写的代码并不能完全解决问题:
set avg-network map mean ([var_1] of turtles)
这样做是计算每只海龟所有三个维度的平均值,而不是计算所有海龟每个维度的平均值。即:
Turtle0 [0 0 0]
Turtle1 [1 1 1]
Turtle2 [2 2 2]
Turtle3 [3 3 3]
给出 [0 1 2 3]
而不是 [2 2 2]
这就是我想要的...
我找到了使用 matrix
扩展名的方法。我做的是:
extensions [ matrix ]
to-report temp-matrix
let m matrix:from-row-list ([var_1] of turtles)
report m
end
to go
let i 0
set avg-network n-values 3 [0]
repeat 3 [
set avg-network replace-item i avg-network (mean matrix:get-column temp-matrix i)
set i (i + 1)
]
end
不是最优雅的,但它可以解决问题。如果有人知道另一种方式,我很高兴听到!