将单列矩阵转换为 R 中的对角矩阵。
对角矩阵是一种方阵,在从左上到右下的非对角元素处包含零。
要将单列矩阵转换为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