假设我有一个方阵( 45 x 45
),我希望将其分成5个子矩阵,这些子矩阵基于矩阵中的对角线块 9 x 9
. 我正在寻找一种通用的方法来实现这一点,而无需指定col和行 .
Example
mat <- matrix(rnorm(45), 45, 45)
mat1 <- mat[1:9, 1:9]
mat2 <- mat[10:18, 10:18]
mat3 <- mat[19:27, 19:27]
mat4 <- mat[28:36, 28:36]
mat5 <- mat[37:45, 37:45]
3 回答
您可以使用此代码获取子矩阵列表 .
取两个矩阵的kronecker乘积,给出一个块对角矩阵
m
,其第一个块全部为1 's, second block is all 2' s等 . 然后将其拆分,删除对角线对应的分量,并将分割的每个分量重新形成矩阵 . 结果s
是块的列表 .一个选项可以是使用
split
和seq
来子集矩阵 .