如何在不使用 diag 函数的情况下提取 R 中矩阵的对角元素?
矩阵的对角元素出现在列和行索引相同的位置,因此,如果我们不想使用 diag 函数,我们可以利用这些索引来提取矩阵的对角元素。
例如,如果我们有一个名为 M 的矩阵,则可以使用下面给出的命令提取 M 的对角元素 -
M[row(M)==col(M)]
查看以下示例以了解其工作原理。
示例 1
以下代码段创建了一个矩阵 -
M1<-matrix(rpois(25,1),ncol=5)M1
创建以下矩阵 -
[,1][,2][,3][,4][,5][1,] 0 1 1 2 0
[2,] 1 0 0 1 1
[3,] 1 0 0 0 3
[4,] 0 0 1 1 1
[5,] 2 1 1 1 1
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M1<-matrix(rpois(25,1),ncol=5)输出结果M1[row(M1)==col(M1)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 0 0 0 1 1
示例 2
以下代码段创建了一个矩阵 -
M2<-matrix(rpois(25,2),ncol=5)M2
创建以下矩阵 -
[,1][,2][,3][,4][,5][1,] 2 3 2 3 3
[2,] 1 4 3 3 2
[3,] 3 3 1 3 3
[4,] 1 0 4 2 1
[5,] 0 1 2 0 0
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M2<-matrix(rpois(25,2),ncol=5)输出结果M2[row(M2)==col(M2)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 2 4 1 2 0
示例 3
以下代码段创建了一个矩阵 -
M3<-matrix(rpois(25,10),ncol=5)M3
创建以下矩阵 -
[,1][,2][,3][,4][,5][1,] 7 10 13 8 3
[2,] 5 9 9 8 7
[3,] 12 7 15 6 9
[4,] 15 8 10 11 16
[5,] 8 10 16 10 7
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M3<-matrix(rpois(25,10),ncol=5)输出结果M3[row(M3)==col(M3)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 7 9 15 11 7
示例 4
以下代码段创建了一个矩阵 -
M4<-matrix(rpois(25,50),ncol=5)M4
创建以下矩阵 -
[,1][,2][,3][,4][,5][1,] 48 40 42 44 53
[2,] 46 47 56 43 41
[3,] 47 54 53 40 50
[4,] 39 50 53 55 48
[5,] 57 57 43 57 64
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M4<-matrix(rpois(25,50),ncol=5)输出结果M4[row(M4)==col(M4)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 48 47 53 55 64
例 5
以下代码段创建了一个矩阵 -
M5<-matrix(rpois(25,500),ncol=5)M5
创建以下矩阵 -
[,1][,2][,3][,4][,5][1,] 501 506 543 506 518
[2,] 466 531 530 496 505
[3,] 510 497 516 522 505
[4,] 455 521 504 476 493
[5,] 465 520 490 501 476
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M5<-matrix(rpois(25,500),ncol=5)输出结果M5[row(M5)==col(M5)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 501 531 516 476 476
例 6
以下代码段创建了一个矩阵 -
M6<-matrix(round(rnorm(25),1),ncol=5)M6
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5][1,] -2.1 1.0 0.3 1.4 -1.2
[2,] -0.1 0.1 -0.2 -1.1 0.7
[3,] -1.6 -0.6 -0.2 1.5 -1.0
[4,] -0.7 1.2 -1.5 -0.9 0.1
[5,] 1.2 0.5 1.8 -0.6 0.4
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M6<-matrix(round(rnorm(25),1),ncol=5)输出结果M6[row(M6)==col(M6)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] -2.1 0.1 -0.2 -0.9 0.4
例 7
以下代码段创建了一个矩阵 -
M7<-matrix(round(runif(25,2,5),2),ncol=5)M7
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5][1,] 4.63 3.45 2.22 4.31 3.46
[2,] 2.22 3.65 3.15 4.19 2.65
[3,] 3.14 3.68 2.31 3.04 3.45
[4,] 3.71 4.91 3.94 2.55 2.98
[5,] 3.48 2.54 2.29 3.58 3.15
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M7<-matrix(round(runif(25,2,5),2),ncol=5)输出结果M7[row(M7)==col(M7)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 4.63 3.65 2.31 2.55 3.15
例 8
以下代码段创建了一个矩阵 -
M8<-matrix(round(rexp(25,2.05),2),ncol=5)M8
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5][1,] 0.60 0.15 0.32 0.42 0.16
[2,] 0.59 0.40 0.95 0.23 1.07
[3,] 0.02 0.57 0.79 0.21 0.09
[4,] 1.03 0.25 0.25 1.08 0.46
[5,] 0.10 0.68 0.13 0.47 0.01
要在不使用 diag 函数的情况下提取 R 中矩阵的对角元素,请将以下代码添加到上述代码段中 -
M8<-matrix(round(rexp(25,2.05),2),ncol=5)输出结果M8[row(M8)==col(M8)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 0.60 0.40 0.79 1.08 0.01
以上是 如何在不使用 diag 函数的情况下提取 R 中矩阵的对角元素? 的全部内容, 来源链接: utcz.com/z/343724.html