📜  如何在 R 中创建身份矩阵?

📅  最后修改于: 2022-05-13 01:54:48.950000             🧑  作者: Mango

如何在 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