R语言 如何不使用diag函数提取矩阵的对角线元素
在这篇文章中,我们将看到如何在不使用diag()函数的情况下在R编程语言中提取矩阵的对角线元素。
矩阵是一个以行和列排列的矩形数字。在一个矩阵中,我们知道行是水平方向的,列是垂直方向的。在R编程中,矩阵是二维的、同质的数据结构。
矩阵[row(matrix)==col(matrix)]
其中,矩阵是输入矩阵。row()将检查行元素,col()将检查列元素。
例1 :
在这个例子中,我们将创建5*5矩阵并显示对角线元素。
# create 5*5 matrix.
matrix_data=matrix(1:25,nrow=5,ncol=5)
# display actual matrix
print(matrix_data)
# extract diagonal elements
matrix_data[row(matrix_data)==col(matrix_data)]
输出 。
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25
[1] 1 7 13 19 25
例2 :
在这个例子中,我们将创建3*3矩阵并显示对角线元素。
# create 3*3 matrix.
matrix_data = matrix(c(1, 3, 4, 5, 6, 7, 9, 6, 3),
nrow=3, ncol=3)
# display actual matrix
print(matrix_data)
# extract diagonal elements
matrix_data[row(matrix_data) == col(matrix_data)]
输出 。
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 3 6 6
[3,] 4 7 3
[1] 1 6 3