🎯 一、什么是矩阵?
- 矩阵 是一个二维数据结构,由 行 和 列 构成。它的所有元素通常是相同的数据类型(比如数值)。
- 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) # 计算逆矩阵
🧪 七、小练习题
- 创建一个 3×3 的矩阵
A
,元素为从 1 到 9,打印出矩阵。 - 计算矩阵
A
的行列式。 - 创建矩阵
B
和C
,并进行矩阵乘法。 - 使用
apply()
计算矩阵每一列的平均值。
总结
操作 | 示例 |
---|---|
创建矩阵 | matrix(1:6, nrow = 2, ncol = 3) |
访问矩阵元素 | m[1, 2] |
加法/减法 | m1 + m2 |
矩阵乘法 | m3 %*% m4 |
矩阵转置 | t(m) |
应用函数 | apply(m, 2, sum) |
求行列式 | det(m) |
矩阵是进行数据分析和线性代数操作的基础工具!如果你有其他问题或者想深入了解矩阵的 特征值、特征向量 等内容,也可以随时告诉我!💡
发表回复