Netlogo 嵌套列表的平均值

Netlogo 嵌套列表的平均值,netlogo,Netlogo,我试图计算嵌套列表的平均值。我尝试过使用map函数,但是默认值给出了我感兴趣的相反维度的平均值。请参见以下示例: set a [[1 1][2 2][3 3]] ; create a nested list set b map mean a ; b equals [1 2 3] 这个答案给出了b的[1 2 3]。然而,我对答案感兴趣,在“其他”维度中取平均值。我可以想象有一种方法可以用map实现这一点,但我还没有找到 一个可能的解决方案如下 设置一个[[1 2 3][1 2 3]

我试图计算嵌套列表的平均值。我尝试过使用map函数,但是默认值给出了我感兴趣的相反维度的平均值。请参见以下示例:

set a [[1 1][2 2][3 3]] ; create a nested list
set b map mean a        ; b equals [1 2 3]

这个答案给出了b的
[1 2 3]
。然而,我对答案感兴趣,在“其他”维度中取平均值。我可以想象有一种方法可以用
map
实现这一点,但我还没有找到

一个可能的解决方案如下

设置一个[[1 2 3][1 2 3]]

设置b映射表示a


这将为b提供
[2]

我的意思是,如果你想象一个矩阵3x2,而不是将a定义为3行向量,你可以将a定义为两列向量……这样你就得到了“相反维度的平均值”,我同意这是可行的,除了我不确定嵌套列表是否可以这样构建,因为嵌套列表是从代理拥有的列表构建的。感谢@Bryan Head建议使用
extract?矩阵
直接在
n值
中,而不是添加单独的
映射
步骤。还请注意,如果/当实施时,此代码可能会变得更简单。
to go
  print column-means [
    [ 1 1 ]
    [ 2 2 ]
    [ 3 3 ]
  ]
end

to-report column-means [ matrix ]
  if length (remove-duplicates map length matrix) > 1 [
    error "All rows must be the same length"
  ]  
  report n-values length first matrix [ mean extract ? matrix ]
end

to-report extract [ i row ]
  report map [ item i ? ] row
end