我试着在一个补丁上计算海龟拥有的因子的方差。换句话说,在一个补丁中,我想知道该补丁中所有海龟因子的平均值和方差。
我知道‘海龟的平均因素-这里’会给我平均值,但由于某种原因,差异也不起作用。问题1:要求修补程序输出海龟拥有的因子的方差的正确语法是什么?
我想出了一个超级简单的例子模型。只需将其粘贴到代码中,然后在界面上创建“setup”和“go”按钮。它应该有粉红色的海龟在黑色的斑块上寻找和停下来。
turtles-own
[FACTOR]
patches-own
[DEPTH]
to setup
clear-all
reset-ticks
make_patches
make_turtles
end
to go
move
if count (turtles with [DEPTH > 0]) = 0 [stop]
end
to make_patches
ask patches [set depth 20 set pcolor green - 2]
ask n-of 5 patches [set depth -50 set pcolor black]
end
to make_turtles
create-turtles 10
ask turtles
[
set color pink
set size 2
set xcor random max-pxcor
set ycor random max-pycor
set FACTOR random 100
]
end
to move
ask turtles[
let D min [DEPTH] of patches in-radius 3
let Dn min-one-of patches in-radius 3 [DEPTH]
let LDe [DEPTH] of patch-here
ifelse DEPTH < 0
[
move-to patch-here
stop
]
[ifelse LDE > D AND D < 0
[
move-to DN
stop
]
[
right random-float 150
forward random 3
]
]
]
end最后,我想做一个行为空间实验,在每个运行结束时,用DEPTH< 0计算和输出海龟因子的平均值、标准差和方差。我的计划是创建一个类型的列表
ask patches with [DEPTH< 0] [set FACTOR_LIST (list ("[")(COORDINATES) (",") (VARIANCE_FACTOR) ("]") )]在FACTOR_LIST是导出列表的情况下,坐标是由补丁的x和y坐标组成的列表,而VARIANCE_FACTOR是因子的方差(我在这里询问如何做)。问题2:是否有更有效的方法来获得这个列表?
非常感谢!
发布于 2016-11-21 23:18:40
写这个问题至少让我找到了第一个问题的答案。
我改变了:
patches-own
[
DEPTH
DENSITY
FACTOR_VARIANCE
FACTOR_LIST
]
to go
move
if count (turtles with [DEPTH > 0]) = 0
[
final_tick
ask patches with [DEPTH < 0] [show FACTOR_LIST]
stop
]
end并添加了一个计算方差的新过程,并将其放入我可以从修补程序调用的列表中。
to final_tick
ask patches with [DEPTH < 0] [set DENSITY count turtles-here]
ask patches with [DEPTH < 0 AND DENSITY <= 1] [set FACTOR_VARIANCE 0]
ask patches with [DEPTH < 0 AND DENSITY > 1] [set FACTOR_VARIANCE (variance [FACTOR] of turtles-here)]
ask patches with [DEPTH < 0] [set FACTOR_LIST (list (pxcor)(",")(pycor)(",")(FACTOR_VARIANCE))]
end我仍然想知道是否有人有更有效的方法来实现这个目标。
https://stackoverflow.com/questions/40730974
复制相似问题