【问题标题】:Subsetting a list of matrices into a list of smaller matrices将矩阵列表子集为较小矩阵的列表
【发布时间】:2018-01-03 14:52:16
【问题描述】:

我有 1800 个矩阵的列表,尺寸为 7 x 7。我正在尝试获取前 2 行和前 2 列的元素,并将其转换为 2 x 2 矩阵列表,然后再对它们进行 Map 乘法最终替换原始 7 x 7 矩阵列表中的值。

我的代码是:

     PreMultiply_matrixList <- list()
     PreMultiply_matrixList <- sapply(Probability_matrixList, "[", c(1:2),c(1:2))

Probability_matrixList 是 7 x 7 矩阵的列表。

但是,PreMultiply_matrixList 似乎只是复制了每个矩阵的第一个元素,而不是 2x2 矩阵。

我也尝试过来自不同帖子的类似代码,例如:

PreMultiply_matrixList <- sapply(Probability_matrixList,"[",1:2,1:2)

你会怎么做?然后将(使用 Map)与另一个列表相乘,然后替换原始 Probability_matrixList 上的值?

提前致谢。

【问题讨论】:

标签: r list matrix replace subset


【解决方案1】:

第一步,按照上面的cmets:

PreMultiply_matrixList &lt;- lapply(Probability_matrixList,"[",1:2,1:2)

第二步,使用map 由您决定。

对于第三步,将新的 2x2 矩阵(我们称之为 PostMultiply_matrixList)放入原始矩阵列表中,这可能会起作用:

Probability_matrixList2 <- lapply(1:length(Probability_matrixList),
 function(x) {
   Probability_matrixList[[x]][1:2,1:2] <- PostMultiply_matrixList[[x]]
   Probability_matrixList[[x]]
  })

【讨论】:

  • 接受,亚历克斯。很抱歉,我对此很陌生!
猜你喜欢
  • 1970-01-01
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 2021-08-23
  • 2017-05-10
  • 1970-01-01
  • 2016-08-09
相关资源
最近更新 更多