🎯 一、什么是矩阵?

  • 矩阵 是一个二维数据结构,由  和  构成。它的所有元素通常是相同的数据类型(比如数值)。
  • R 中的矩阵可以通过 matrix() 函数创建。

✅ 二、创建矩阵

1. 基本矩阵创建

# 创建一个 2 行 3 列的矩阵
m <- matrix(1:6, nrow = 2, ncol = 3)
print(m)

输出:

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

  • 1:6 表示元素从 1 到 6。
  • nrow = 2 表示矩阵有 2 行。
  • ncol = 3 表示矩阵有 3 列。

2. 填充方式:按列填充和按行填充

默认情况下,R 会按 列填充 矩阵。如果想按 行填充,需要使用 byrow = TRUE

m1 <- matrix(1:6, nrow = 2, ncol = 3, byrow = TRUE)
print(m1)

输出:

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6


✅ 三、访问矩阵元素

矩阵元素通过 行索引 和 列索引 访问,格式是 matrix[row, column]

m <- matrix(1:6, nrow = 2, ncol = 3)
m[1, 2]  # 访问第 1 行,第 2 列的元素 (返回 3)
m[2, 3]  # 访问第 2 行,第 3 列的元素 (返回 6)

1. 访问整行或整列

m[1, ]   # 访问第一行 (返回 c(1, 3, 5))
m[, 2]   # 访问第二列 (返回 c(3, 4))


✅ 四、矩阵运算

1. 加法和减法

矩阵的加法和减法要求两矩阵维度一致。

m1 <- matrix(1:6, nrow = 2, ncol = 3)
m2 <- matrix(7:12, nrow = 2, ncol = 3)

# 加法
m_sum <- m1 + m2
print(m_sum)

# 输出:
#     [,1] [,2] [,3]
# [1,]    8   10   12
# [2,]   10   12   14

2. 矩阵乘法

矩阵乘法可以使用 *(元素对应相乘)或者 %*%(矩阵乘法)。

# 元素对应相乘
m1 * m2

# 矩阵乘法
m3 <- matrix(1:2, nrow = 2, ncol = 1)
m4 <- matrix(1:2, nrow = 1, ncol = 2)
m3 %*% m4


✅ 五、矩阵属性

1. 矩阵维度:dim()

dim(m)   # 返回矩阵的维度 (行数, 列数)

2. 矩阵转置:t()

m_t <- t(m)  # 转置矩阵
print(m_t)


✅ 六、矩阵常用函数

  • apply():对矩阵的行或列应用函数
m <- matrix(1:6, nrow = 2, ncol = 3)
apply(m, 1, sum)  # 按行求和
apply(m, 2, sum)  # 按列求和

  • det():计算矩阵的行列式
m <- matrix(c(1, 2, 3, 4), nrow = 2)
det(m)  # 计算行列式

  • solve():解线性方程组
m <- matrix(c(1, 2, 3, 4), nrow = 2)
solve(m)  # 计算逆矩阵


🧪 七、小练习题

  1. 创建一个 3×3 的矩阵 A,元素为从 1 到 9,打印出矩阵。
  2. 计算矩阵 A 的行列式。
  3. 创建矩阵 B 和 C,并进行矩阵乘法。
  4. 使用 apply() 计算矩阵每一列的平均值。

总结

操作示例
创建矩阵matrix(1:6, nrow = 2, ncol = 3)
访问矩阵元素m[1, 2]
加法/减法m1 + m2
矩阵乘法m3 %*% m4
矩阵转置t(m)
应用函数apply(m, 2, sum)
求行列式det(m)

矩阵是进行数据分析和线性代数操作的基础工具!如果你有其他问题或者想深入了解矩阵的 特征值、特征向量 等内容,也可以随时告诉我!💡