如何在 r 中创建单位矩阵(附示例)
在线性代数中,单位矩阵是一个方阵,主对角线上为 1,其他位置均为 0。
您可以使用以下三种方法之一在 R 中创建单位矩阵:
#create identity matrix using diag()
diag(5)
#create identity matrix using diag() with explicit nrow argument
diag(nrow= 5 )
#create identity matrix by creating matrix of zeros, then filling diagonal with ones
mat <- matrix(0, 5, 5)
diag(mat) <- 1
这些方法中的每一种都会产生相同的结果。
以下示例展示了如何在实践中使用每种方法。
示例 1:使用 diag() 创建单位矩阵
以下代码显示如何使用diag()函数创建 5 行 5 列的单位矩阵:
#create 5x5 identity matrix ident <- diag(5) #view matrix identity [,1] [,2] [,3] [,4] [,5] [1,] 1 0 0 0 0 [2,] 0 1 0 0 0 [3,] 0 0 1 0 0 [4,] 0 0 0 1 0 [5,] 0 0 0 0 1
结果是一个 5×5 方阵,主对角线上有 1,其他位置都是 0。
示例 2:使用 diag(nrow) 创建单位矩阵
以下代码显示如何使用 diag(nrow) 函数创建 5×5 单位矩阵:
#create 5x5 identity matrix ident <- diag(nrow= 5 ) #view matrix identity [,1] [,2] [,3] [,4] [,5] [1,] 1 0 0 0 0 [2,] 0 1 0 0 0 [3,] 0 0 1 0 0 [4,] 0 0 0 1 0 [5,] 0 0 0 0 1
示例 3:分两步创建单位矩阵
下面的代码展示了如何创建一个 5 × 5 单位矩阵,首先创建一个全零的 5 × 5 矩阵,然后将前导对角线值转换为单位:
#create 5x5 matrix with zeros in all positions
ident <- matrix(0, 5, 5)
#make diagonal values 1
diag(ident) <- 1
#view matrix
identity
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 0 0
[2,] 0 1 0 0 0
[3,] 0 0 1 0 0
[4,] 0 0 0 1 0
[5,] 0 0 0 0 1
请注意,这三种方法都会生成完全相同的单位矩阵。
其他资源
以下文章提供了对单位矩阵的有用介绍:
以下文章解释了如何在 R 中执行其他常见矩阵运算:
如何在 R 中执行矩阵乘法
如何在 R 中执行元素乘法
如何在 R 中绘制矩阵的行