如何使用R中的矩阵创建块对角矩阵?
要使用 R 中的矩阵创建块对角矩阵,我们可以使用 Matrix 包的 bdiag 函数。
例如,如果我们有一个名为 M 的矩阵,并且我们想通过使用以下命令使用 M 4 次创建块对角线 -
bdiag(replicate(4,M,simplify=FALSE))
查看下面给出的示例以了解如何完成。
示例 1
以下代码段创建了一个示例矩阵 -
M1<-matrix(rpois(9,5),ncol=3)M1
创建以下矩阵 -
[,1] [,2] [,3][1,] 9 3 10
[2,] 4 4 2
[3,] 5 8 2
要使用上面创建的矩阵上的 R 中的矩阵创建块对角矩阵,请将以下代码添加到上面的代码段中 -
M1<-matrix(rpois(9,5),ncol=3)输出结果library(Matrix)
bdiag(replicate(3,M1,simplify=FALSE))
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
9 x 9 sparse Matrix of class "dgCMatrix"[1,] 9 3 10 . . . . . .
[2,] 4 4 2 . . . . . .
[3,] 5 8 2 . . . . . .
[4,] . . . 9 3 10 . . .
[5,] . . . 4 4 2 . . .
[6,] . . . 5 8 2 . . .
[7,] . . . . . . 9 3 10
[8,] . . . . . . 4 4 2
[9,] . . . . . . 5 8 2
示例 2
以下代码段创建了一个示例矩阵 -
M2<-matrix(rpois(4,2),ncol=2)M2
创建以下矩阵 -
[,1] [,2][1,] 1 2
[2,] 4 1
要使用上面创建的矩阵上的 R 中的矩阵创建块对角矩阵,请将以下代码添加到上面的代码段中 -
M2<-matrix(rpois(4,2),ncol=2)输出结果library(Matrix)
bdiag(replicate(6,M2,simplify=FALSE))
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
12 x 12 sparse Matrix of class "dgCMatrix"[1,] 1 2 . . . . . . . . . .
[2,] 4 1 . . . . . . . . . .
[3,] . . 1 2 . . . . . . . .
[4,] . . 4 1 . . . . . . . .
[5,] . . . . 1 2 . . . . . .
[6,] . . . . 4 1 . . . . . .
[7,] . . . . . . 1 2 . . . .
[8,] . . . . . . 4 1 . . . .
[9,] . . . . . . . . 1 2 . .
[10,] . . . . . . . . 4 1 . .
[11,] . . . . . . . . . . 1 2
[12,] . . . . . . . . . . 4 1
示例 3
以下代码段创建了一个示例矩阵 -
M3<-matrix(round(rnorm(16),2),ncol=4)M3
创建以下矩阵 -
[,1] [,2] [,3] [,4][1,] -0.61 -1.41 0.46 0.67
[2,] -0.08 -0.69 -0.92 -0.61
[3,] -0.44 -0.48 -0.09 -0.42
[4,] -1.79 0.45 1.34 -0.76
要使用上面创建的矩阵上的 R 中的矩阵创建块对角矩阵,请将以下代码添加到上面的代码段中 -
M3<-matrix(round(rnorm(16),2),ncol=4)输出结果library(Matrix)
bdiag(replicate(2,M3,simplify=FALSE))
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
8 x 8 sparse Matrix of class "dgCMatrix"[1,] -0.61 -1.41 0.46 0.67 . . . .
[2,] -0.08 -0.69 -0.92 -0.61 . . . .
[3,] -0.44 -0.48 -0.09 -0.42 . . . .
[4,] -1.79 0.45 1.34 -0.76 . . . .
[5,] . . . . -0.61 -1.41 0.46 0.67
[6,] . . . . -0.08 -0.69 -0.92 -0.61
[7,] . . . . -0.44 -0.48 -0.09 -0.42
[8,] . . . . -1.79 0.45 1.34 -0.76
示例 4
以下代码段创建了一个示例矩阵 -
M4<-matrix(round(rnorm(9),2),ncol=3)M4
创建以下矩阵 -
[,1] [,2] [,3][1,] -0.11 1.49 0.86
[2,] -0.06 -0.39 0.96
[3,] 1.29 -2.67 -0.03
要使用上面创建的矩阵上的 R 中的矩阵创建块对角矩阵,请将以下代码添加到上面的代码段中 -
M4<-matrix(round(rnorm(9),2),ncol=3)输出结果library(Matrix)
bdiag(replicate(3,M4,simplify=FALSE))
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
9 x 9 sparse Matrix of class "dgCMatrix"[1,] -0.11 1.49 0.86 . . . . . .
[2,] -0.06 -0.39 0.96 . . . . . .
[3,] 1.29 -2.67 -0.03 . . . . . .
[4,] . . . -0.11 1.49 0.86 . . .
[5,] . . . -0.06 -0.39 0.96 . . .
[6,] . . . 1.29 -2.67 -0.03 . . .
[7,] . . . . . . -0.11 1.49 0.86
[8,] . . . . . . -0.06 -0.39 0.96
[9,] . . . . . . 1.29 -2.67 -0.03
例 5
以下代码段创建了一个示例矩阵 -
M5<-matrix(rpois(4,10),ncol=2)M5
创建以下矩阵 -
[,1] [,2][1,] 10 6
[2,] 5 17
要使用上面创建的矩阵上的 R 中的矩阵创建块对角矩阵,请将以下代码添加到上面的代码段中 -
M5<-matrix(rpois(4,10),ncol=2)输出结果library(Matrix)
bdiag(replicate(5,M5,simplify=FALSE))
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
10 x 10 sparse Matrix of class "dgCMatrix"[1,] 10 6 . . . . . . . .
[2,] 5 17 . . . . . . . .
[3,] . . 10 6 . . . . . .
[4,] . . 5 17 . . . . . .
[5,] . . . . 10 6 . . . .
[6,] . . . . 5 17 . . . .
[7,] . . . . . . 10 6 . .
[8,] . . . . . . 5 17 . .
[9,] . . . . . . . . 10 6
[10,] . . . . . . . . 5 17
以上是 如何使用R中的矩阵创建块对角矩阵? 的全部内容, 来源链接: utcz.com/z/350413.html