如何在 R 中创建身份矩阵?
在本文中,我们将讨论如何在 R 编程语言中创建身份矩阵。
单位矩阵是包含所有零的矩阵,但对角线元素等于 1。单位矩阵本质上总是正方形的。 Base R 提供了大量的方法来创建和定义 R 中的单位矩阵:
方法一:使用诊断方法
基础 R 中的 diag() 方法用于创建具有指定维度的方阵。它将对角线值分配为 1,其余所有元素的值分配为 0。
语法:
diag(num)
其中,num - 等于矩阵的行数和列数的数字。
示例:
R
# creating a diagonal matrix with
# dimensions 3 x 3
diag_mat < - diag(3)
# printing identity matrix
print("Identity Matrix")
print(diag_mat)
R
# creating a diagonal matrix with
# dimensions 7 x 7
diag_mat < -diag(nrow=7)
# printing identity matrix
print("Identity Matrix")
print(diag_mat)
R
# defining number of rows and columns
row < - 6
col < - 6
# creating a diagonal matrix with
# dimensions 6 x 6
diag_mat < - matrix(0, row, col)
# specifying the diagonal value to be 1
diag(diag_mat) < - 1
# printing identity matrix
print("Identity Matrix")
print(diag_mat)
输出:
[1] "Identity Matrix"
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
方法二:使用 diag(nrow) 方法
diag(nrow) 方法可用于指定单位矩阵的行数。它分配的列数等于指定的行数。
语法:
diag(nrow = )
在哪里, nrow - 单位矩阵的行数
示例:
R
# creating a diagonal matrix with
# dimensions 7 x 7
diag_mat < -diag(nrow=7)
# printing identity matrix
print("Identity Matrix")
print(diag_mat)
输出:
[1] "Identity Matrix"
> print(diag_mat)
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 0 0 0 0 0 0
[2,] 0 1 0 0 0 0 0
[3,] 0 0 1 0 0 0 0
[4,] 0 0 0 1 0 0 0
[5,] 0 0 0 0 1 0 0
[6,] 0 0 0 0 0 1 0
[7,] 0 0 0 0 0 0 1
方法 3:创建一个零矩阵,然后将对角线分配给 1
R 中的 matrix() 方法可用于创建具有指定值的矩阵,并将其分配给矩阵声明的行数和列数。
语法:
matrix ( val , rows, cols)
参数 :
- val - 要分配给所有单元格的值
- rows – 单位矩阵的行
- cols – 单位矩阵的列
示例:
我们最初创建一个 0 的矩阵,然后使用前面定义的 diag() 方法为对角线分配 1。
R
# defining number of rows and columns
row < - 6
col < - 6
# creating a diagonal matrix with
# dimensions 6 x 6
diag_mat < - matrix(0, row, col)
# specifying the diagonal value to be 1
diag(diag_mat) < - 1
# printing identity matrix
print("Identity Matrix")
print(diag_mat)
输出:
[1] "Identity Matrix"
> print(diag_mat)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 0 0 0 0
[2,] 0 1 0 0 0 0
[3,] 0 0 1 0 0 0
[4,] 0 0 0 1 0 0
[5,] 0 0 0 0 1 0
[6,] 0 0 0 0 0 1