将单列矩阵转换为 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

以上是 将单列矩阵转换为 R 中的对角矩阵。 的全部内容, 来源链接: utcz.com/z/360898.html

回到顶部