矩阵运算初入门

在数学和计算机科学中,矩阵运算是一种非常基础但又极其重要的工具,广泛应用于线性代数、图像处理、机器学习以及信号处理等领域。

本文将通过一个简单的例子,帮助理解矩阵与向量的乘法运算。

什么是矩阵和向量?

矩阵:可以理解为一个二维数组,拥有行和列。例如下面的矩阵 𝑚:

# m 有 2 行 3 列:
m = [
    [1, 2, 3],
    [4, 5, 6]
]

向量:可以理解为一维数组,即单列或单行的矩阵。例如向量 𝑣:

v = [1, 2, 3]

向量可以看作是矩阵的特例,只有一列。

矩阵与向量相乘

矩阵乘法遵循一个重要规则:矩阵的列数必须等于向量的长度。

在乘法过程中,矩阵的每一行会与向量进行点积计算(对应元素相乘再相加)。

v = [1, 2, 3]
m = [
    [1, 2, 3],
    [4, 5, 6]
]

r = [
    m[0][0] * v[0] + m[0][1] * v[1] + m[0][2] * v[2],
    m[1][0] * v[0] + m[1][1] * v[1] + m[1][2] * v[2]
]

这里,矩阵 𝑚 有 2 行 3 列,向量 𝑣 有 3 个元素,满足矩阵列数 = 向量长度。

需要注意的是 [1, 2, 3] 虽然便于书写,但这种格式通常被视为行向量。

在严谨情况下,需要变为 [[1], [2], [3]] 这样的列向量。

运算结果取矩阵行数,于是得到长度为 2 的向量 ​r [14, 32]

矩阵与矩阵相乘

矩阵运算不仅限于矩阵 × 向量,还可以是 矩阵 × 矩阵。

假设分别有矩阵 A 和矩阵 B 。二者如下:

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

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

根据矩阵乘法规则:如果 ​A​m \cdot n, ​B​n \cdot p 那么 ​C = A \cdot B = m \cdot p

A 是 2 行 3 列,B 是 3 行 2 列,那么 C 就是 2 行 2 列。

C = [
  [
    A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0],
    A[0][0] * B[0][1] + A[0][1] * B[1][1] + A[0][2] * B[2][1],
  ],
  [
    A[1][0] * B[0][0] + A[1][1] * B[1][0] + A[1][2] * B[2][0],
    A[1][0] * B[0][1] + A[1][1] * B[1][1] + A[1][2] * B[2][1],
  ]
]

# 即
C = [
    [14, 32],
    [32, 77]
]

矩阵运算的实际应用

  • 线性变换:旋转、缩放、投影等几何操作都可以用矩阵表示。

  • 图像处理:图像滤波、卷积操作可用矩阵乘法实现。

  • 信号处理:离散傅里叶变换(DFT)本质上是矩阵 × 向量运算。

  • 机器学习:神经网络前向传播和梯度计算都依赖矩阵运算。


矩阵运算初入门
http://www.inksha.com/archives/ju-zhen-yun-suan-chu-ru-men
作者
inksha
发布于
2025年09月30日
许可协议