在 R 中将单列矩阵转换为对角矩阵。
r programmingserver side programmingprogramming
对角矩阵是一种方阵,从左上到右下,非对角元素包含零。
要在 R 中将单列矩阵转换为对角矩阵,我们可以使用 diag 函数和矩阵函数,并使用 ncol 参数,其中我们可以将列数设置为等于单列矩阵中的值数。
查看下面给出的示例以了解如何完成。
示例 1
以下代码片段创建了一个示例矩阵 −
M1<-matrix(rpois(5,2),ncol=1) M1
创建以下矩阵 −
[,1] [1,] 2 [2,] 3 [3,] 5 [4,] 1 [5,] 1
要将矩阵 M1 转换为上面创建的矩阵的对角矩阵,请将以下代码添加到上面的代码片段中 −
M1<-matrix(rpois(5,2),ncol=1) M1<-matrix(diag(as.vector(M1)),ncol=5) M1
输出
如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −
[,1] [,2] [,3] [,4] [,5] [1,] 2 0 0 0 0 [2,] 0 3 0 0 0 [3,] 0 0 5 0 0 [4,] 0 0 0 1 0 [5,] 0 0 0 0 1
示例 2
以下代码片段创建了一个示例矩阵 −
M2<-matrix(rpois(5,500),ncol=1) M2
创建以下矩阵 −
[,1] [1,] 505 [2,] 505 [3,] 523 [4,] 545 [5,] 507
要将矩阵 M2 转换为上面创建的矩阵的对角矩阵,请将以下代码添加到上面的代码片段中 −
M2<-matrix(rpois(5,500),ncol=1) M2<-matrix(diag(as.vector(M2)),ncol=5) M2
输出
如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −
[,1] [,2] [,3] [,4] [,5] [1,] 505 0 0 0 0 [2,] 0 505 0 0 0 [3,] 0 0 523 0 0 [4,] 0 0 0 545 0 [5,] 0 0 0 0 507
示例 3
以下代码片段创建了一个示例矩阵 −
M3<-matrix(rnorm(5),ncol=1) M3
创建以下矩阵 −
[,1] [1,] 0.2614596 [2,] 0.6914427 [3,] -1.8483160 [4,] -1.0057351 [5,] -1.4467553
要将矩阵 M3 转换为上面创建的矩阵的对角矩阵,请将以下代码添加到上面的代码片段中 −
M3<-matrix(rnorm(5),ncol=1) M3<-matrix(diag(as.vector(M3)),ncol=5) M3
输出
如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −
[,1] [,2] [,3] [,4] [,5] [1,] 0.2614596 0.0000000 0.000000 0.000000 0.000000 [2,] 0.0000000 0.6914427 0.000000 0.000000 0.000000 [3,] 0.0000000 0.0000000 -1.848316 0.000000 0.000000 [4,] 0.0000000 0.0000000 0.000000 -1.005735 0.000000 [5,] 0.0000000 0.0000000 0.000000 0.000000 -1.446755
示例 4
以下代码片段创建了一个示例矩阵 −
M4<-matrix(round(rnorm(5,25,3.2),1),ncol=1) M4
创建以下矩阵 −
[,1] [1,] 26.6 [2,] 26.5 [3,] 22.1 [4,] 24.8 [5,] 19.1
要将矩阵 M4 转换为上面创建的矩阵的对角矩阵,请将以下代码添加到上面的代码片段中 −
M4<-matrix(round(rnorm(5,25,3.2),1),ncol=1) M4<-matrix(diag(as.vector(M4)),ncol=5) M4
输出
如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −
[,1] [,2] [,3] [,4] [,5] [1,] 26.6 0.0 0.0 0.0 0.0 [2,] 0.0 26.5 0.0 0.0 0.0 [3,] 0.0 0.0 22.1 0.0 0.0 [4,] 0.0 0.0 0.0 24.8 0.0 [5,] 0.0 0.0 0.0 0.0 19.1
示例 5
以下代码片段创建了一个示例矩阵 −
M5<-matrix(round(runif(5,2,10),2),ncol=1) M5
创建以下矩阵 −
[,1] [1,] 5.92 [2,] 7.34 [3,] 7.72 [4,] 3.18 [5,] 7.00
要将矩阵 M5 转换为上面创建的矩阵的对角矩阵,请将以下代码添加到上面的代码片段中 −
M5<-matrix(round(runif(5,2,10),2),ncol=1) M5<-matrix(diag(as.vector(M5)),ncol=5) M5
输出
如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −
[,1] [,2] [,3] [,4] [,5] [1,] 5.92 0.00 0.00 0.00 0 [2,] 0.00 7.34 0.00 0.00 0 [3,] 0.00 0.00 7.72 0.00 0 [4,] 0.00 0.00 0.00 3.18 0 [5,] 0.00 0.00 0.00 0.00 7