NetLogo中方向的平均值和标准差(以度为单位)

NetLogo中方向的平均值和标准差(以度为单位),netlogo,angle,summary,Netlogo,Angle,Summary,我正在NetLogo的一个模型上工作,我想报告每年模拟中海龟扩散方向(方位角为0-360度)的平均值和标准偏差。当然,NetLogo中没有用于这些循环统计的默认命令,所以我需要手工写出计算结果。我想知道以前是否有人在NetLogo中开发过类似的自定义功能 我遇到了一组用于计算平均值的代码: to-report mean-of-headings [headings] let x-mean mean map [sin ?] headings let y-mean mean map [cos

我正在NetLogo的一个模型上工作,我想报告每年模拟中海龟扩散方向(方位角为0-360度)的平均值和标准偏差。当然,NetLogo中没有用于这些循环统计的默认命令,所以我需要手工写出计算结果。我想知道以前是否有人在NetLogo中开发过类似的自定义功能

我遇到了一组用于计算平均值的代码:

to-report mean-of-headings [headings]
  let x-mean mean map [sin ?] headings
  let y-mean mean map [cos ?] headings
  if x-mean = 0 and y-mean = 0 [ report random 360 ]
  report atan x-mean y-mean
end
但我不确定这是否能达到平均值,也没有看到SD的代码。我的想法是将这个R代码翻译成NetLogo语言,并创建一个类似于上面的记者

Tester <-c(340, 360, 20) # list of bearings

sine = sum(sin(Tester * pi/180)) # sin of each angle, convert to radian first
cosine = sum(cos(Tester * pi/180)) # cos of each angle, convert to radian first

Tester_mean = (atan2(sine, cosine) * 180/pi) %% 360

mu = (Tester - Tester_mean + 180) %% 360 - 180 # Difference of each angle from mean
Tester_sd = sqrt(sum(mu^2)/(length(Tester) - 1)) # Standard Deviation

Tester_mean # mean bearing
Tester_sd # sd bearing
测试仪