如何在 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 中绘制矩阵的行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注