【问题标题】:R sum i matrices in a loopR sum i 循环中的矩阵
【发布时间】:2014-07-03 06:00:29
【问题描述】:

我使用 R 在 for 循环中计算 50 个矩阵。我如何总结所有 50 matrices 之类的:

for(j in 1:50){

  mat = matrix(j,3,3)

}

没有必要保留所有 50 个矩阵。我只需要循环中所有计算矩阵的总和,例如 1 + 2 + ... + 49 + 50。提前谢谢。

【问题讨论】:

  • 这很不清楚您要做什么。您发布的代码显然不可运行。如果未定义 jfor(j in 1:j) 就没有任何意义。 matB_(j-1) 在哪里定义?您打算保留每个 j 矩阵还是只保留总和?

标签: r loops matrix sum


【解决方案1】:

我认为这就是你的目标:

### reproducible
set.seed(1)
### no. matrices
j <- 3
### 'pre-allocate' list
l1 <-  vector("list", length=j)
### fill it (all different)
for (i in 1:j){
    l1[[i]] <- matrix(rnorm(9), nrow=3)
}
### taken from ?Reduce
add <- function(x) Reduce("+", x)
add(l1)

有关更多示例,请参阅?Reduce

注意分号; 对于R 中的行尾不是必需的。

【讨论】:

    【解决方案2】:

    如果matrixlist 是您包含所有 50 个矩阵的列表,这不是说起来那么简单吗

    summatrix <- Reduce("+", matrixlist)
    

    我刚刚有一个类似的问题,感觉很多类似问题的答案都很复杂。上面的代码对我有用,但我不确定它是否足够。很高兴收到反馈

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2014-10-02
      • 2018-01-30
      • 1970-01-01
      相关资源
      最近更新 更多