如何结合两个矩阵在R中创建块对角矩阵?

块对角矩阵表示在最后一个元素末尾将一个矩阵添加到另一个矩阵。例如,如果我们有一个具有九个值的矩阵,另一个矩阵也具有九个值,则第二个矩阵将被添加到第一个矩阵,并且第一个矩阵下方的元素将为零,而第二个矩阵上方的元素也将为零。

示例

M1<-matrix(1:9,ncol=3)

M1

输出结果

   [,1] [,2] [,3]

[1,] 1    4    7

[2,] 2    5    8

[3,] 3    6    9

示例

M2<-matrix(10:18,ncol=3)

M2

输出结果

    [,1] [,2] [,3]

[1,] 10   13   16

[2,] 11   14   17

[3,] 12   15   18

示例

rbind(cbind(M1,matrix(0,nrow=nrow(M1),ncol=ncol(M2))),cbind(matrix(0,nrow=nrow(M2),ncol=ncol(M1)),M2))

输出结果

   [,1] [,2] [,3] [,4] [,5] [,6]

[1,] 1    4    7    0    0    0

[2,] 2    5    8    0    0    0

[3,] 3    6    9    0    0    0

[4,] 0    0    0   10   13   16

[5,] 0    0    0   11   14   17

[6,] 0    0    0   12   15   18

示例

M3<-matrix(1:25,nrow=5)

M3

输出结果

   [,1] [,2] [,3] [,4] [,5]

[1,] 1   6    11    16  21

[2,] 2   7    12    17  22

[3,] 3   8    13    18  23

[4,] 4   9    14    19  24

[5,] 5   10   15    20  25

示例

M4<-matrix(26:50,ncol=5)

M4

输出结果

[,1] [,2] [,3] [,4] [,5]

[1,] 26 31 36 41 46

[2,] 27 32 37 42 47

[3,] 28 33 38 43 48

[4,] 29 34 39 44 49

[5,] 30 35 40 45 50

示例

rbind(cbind(M3,matrix(0,nrow=nrow(M4),ncol=ncol(M4))),cbind(matrix(0,nrow=nrow(M4),ncol=ncol(M3)),M4))

输出结果

   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,] 1   6    11   16   21   0 0 0 0 0

[2,] 2   7    12   17   22   0 0 0 0 0

[3,] 3   8    13   18   23   0 0 0 0 0

[4,] 4   9    14   19   24   0 0 0 0 0

[5,] 5   10   15   20   25   0 0 0 0 0

[6,] 0   0    0    0    0    26 31 36 41 46

[7,] 0   0    0    0    0   27 32 37 42 47

[8,] 0   0    0    0    0     28 33 38 43 48

[9,] 0   0    0    0    0     29 34 39 44 49

[10,] 0   0  0    0    0     30 35 40 45 50

示例

M5<-matrix(sample(1:5,25,replace=TRUE),nrow=5)M5

输出结果

[,1] [,2] [,3] [,4] [,5]

[1,] 2 2 3 1 2

[2,] 2 4 1 5 4

[3,] 4 1 5 4 2

[4,] 2 4 4 2 5

[5,] 5 1 2 5 3

示例

M6<-matrix(sample(6:10,25,replace=TRUE),ncol=5)

M6

输出结果

[,1] [,2] [,3] [,4] [,5]

[1,] 10 9 9 6 6

[2,] 8 7 10 9 8

[3,] 8 9 9 8 9

[4,] 7 8 6 8 7

[5,] 8 9 6 8 7

示例

rbind(cbind(M5,matrix(0,nrow=nrow(M6),ncol=ncol(M6))),cbind(matrix(0,nrow=nrow(M6),ncol=ncol(M5)),M6))

输出结果

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,] 3 1 3 1 3 0 0 0 0 0

[2,] 4 2 3 1 5 0 0 0 0 0

[3,] 5 4 3 5 4 0 0 0 0 0

[4,] 1 3 5 1 5 0 0 0 0 0

[5,] 1 2 2 4 5 0 0 0 0 0

[6,] 0 0 0 0 0 8 8 7 6 10

[7,] 0 0 0 0 0 6 6 8 10 7

[8,] 0 0 0 0 0 9 6 7 10 9

[9,] 0 0 0 0 0 10 6 10 6 7

[10,] 0 0 0 0 0 10 10 9 7 6

示例

M7<-matrix(round(rnorm(36),0),nrow=6)

M7

输出结果

[,1] [,2] [,3] [,4] [,5] [,6]

[1,] 1 0 2 -1 1 0

[2,] -2 0 2 0 0 -1

[3,] -1 0 0 0 0 0

[4,] 0 0 1 1 1 0

[5,] 1 -1 0 -1 2 1

[6,] 0 1 0 0 2 -1

示例

M8<-matrix(round(runif(36,2,5),0),nrow=6)

M8

输出结果

[,1] [,2] [,3] [,4] [,5] [,6]

[1,] 3 4 3 3 3 4

[2,] 2 2 2 3 4 5

[3,] 3 2 3 4 4 3

[4,] 3 3 5 2 3 2

[5,] 3 5 4 4 5 2

[6,] 4 2 2 4 2 3

示例

rbind(cbind(M7,matrix(0,nrow=nrow(M8),ncol=ncol(M8))),cbind(matrix(0,nrow=nrow(M8),ncol=ncol(M7)),M8))

输出结果

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]

[1,] 0      0    0    1    -1    1    0   0   0    0      0     0

[2,] -1     1    2    1    -1    1    0    0   0   0      0     0

[3,] 0      0   1     0      1    1    0   0    0  0      0     0

[4,] -1      0  -2    0      1   -3   0   0   0    0      0      0

[5,] 0      1    1   0     1     0     0  0   0    0      0     0

[6,] 0    0     0    0    0     1     0   0   0    0      0   0

[7,] 0   0     0     0    0      0    2   4   2    2     3      4

[8,] 0   0     0     0    0     0    4    4   5    3    3      4

[9,] 0   0    0      0   0     0     3     5  3    4    5     3

[10,] 0   0    0     0   0    0      3    4    5   4    2     5

[11,] 0   0    0    0    0    0      4    3   3   3     4 2

[12,] 0   0   0     0    0    0      5    3   5   2     3 5

以上是 如何结合两个矩阵在R中创建块对角矩阵? 的全部内容, 来源链接: utcz.com/z/351459.html

回到顶部