Netlogo:计算 turtles-own 列表的平均值
Netlogo: Calculate average of turtles-own list
我有 2 到 10 只乌龟记得回家的路。海龟的坐标每刻保存到列表 path。
to path-tracker
let x xcor ;; gets the current coordinates
let y ycor
facexy x y
setxy x y
set path lput (list x y) path ;; adds the coordinate pair (x,y) to the end of the path
end
当海龟都到达目标时,程序停止并回到它们开始的地方。现在另一个程序开始,他们不应该遵循自己的路径,而是应该遵循所有路径的平均路径。
那么如何计算所有 turtle-own 列表的平均列表?
这是一个非常简单的解决方案,它创建了一个大小为 path-length 的列表,其中第 5 个元素是第 3 个元素的所有海龟的第 0 项(x 坐标)的平均值的列表(坐标)第一个元素(坐标)的所有乌龟的第一项(y 坐标)的(坐标)和平均值:
let path-length (length [path] of one-of turtles)
let average n-values path-length [
(list (mean [(item 0 (item ? path)) ] of turtles)
(mean [(item 1 (item ? path)) ] of turtles))]
如果你不喜欢它被如此压缩,你可以使用下面的方法来达到相同的结果。
let average-path (list)
foreach (n-values path-length [?])
[
let meanx (mean [(item 0 (item ? path)]] of turtles)
let meany (mean [(item 1 (item ? path)]] of turtles)
set average-path lput (list meanx meany) average-path
]
我有 2 到 10 只乌龟记得回家的路。海龟的坐标每刻保存到列表 path。
to path-tracker
let x xcor ;; gets the current coordinates
let y ycor
facexy x y
setxy x y
set path lput (list x y) path ;; adds the coordinate pair (x,y) to the end of the path
end
当海龟都到达目标时,程序停止并回到它们开始的地方。现在另一个程序开始,他们不应该遵循自己的路径,而是应该遵循所有路径的平均路径。
那么如何计算所有 turtle-own 列表的平均列表?
这是一个非常简单的解决方案,它创建了一个大小为 path-length 的列表,其中第 5 个元素是第 3 个元素的所有海龟的第 0 项(x 坐标)的平均值的列表(坐标)第一个元素(坐标)的所有乌龟的第一项(y 坐标)的(坐标)和平均值:
let path-length (length [path] of one-of turtles)
let average n-values path-length [
(list (mean [(item 0 (item ? path)) ] of turtles)
(mean [(item 1 (item ? path)) ] of turtles))]
如果你不喜欢它被如此压缩,你可以使用下面的方法来达到相同的结果。
let average-path (list)
foreach (n-values path-length [?])
[
let meanx (mean [(item 0 (item ? path)]] of turtles)
let meany (mean [(item 1 (item ? path)]] of turtles)
set average-path lput (list meanx meany) average-path
]