【问题标题】:how to calculate mean of multiple matrices如何计算多个矩阵的平均值
【发布时间】:2017-06-02 00:59:48
【问题描述】:

我有 2000 个大小为 27*27 的协方差矩阵,我想获得所有 2000 个矩阵的平均协方差矩阵。我想要的结果是一个大小为 27x27 的矩阵,其中位置 [1,1] 是给定 27 个矩阵的位置 [1,1] 的平均值。 我可以从其他帖子中看到我应该创建一个数组并使用 apply 函数,但它不起作用!

我的代码:

a<-array(ml.1[c(1:2000)])
apply(a,c(1,2),mean)

我收到以下错误消息: if (d2 == 0L) { 中的错误:需要 TRUE/FALSE 的缺失值

如果有人能帮我解决这个问题,我将不胜感激。

【问题讨论】:

标签: r matrix


【解决方案1】:

首先,@eipi10 是对的,您的问题不可重现。但这里的关键在于如何设置阵列。

#Make some fake data 10 matrices 10x10
m <- lapply(1:10, function(x) matrix(rnorm(100), nrow = 10))
#bind the matrices together
a <- do.call(cbind, m)
#recast the matrix into three dimensions
dim(a) <- c(10,10,10) 
#now apply should work
apply(a, c(1,2), mean)

【讨论】:

  • 您可以添加其元素,而不是重塑列表:Reduce(`+`, m) / length(m)
猜你喜欢
  • 2019-04-22
  • 1970-01-01
  • 2011-04-23
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多