Python 编写一个程序实现矩阵乘法

Document 对象参考手册 Python3 实例

矩阵乘法是线性代数中的一个基本操作。给定两个矩阵 A 和 B,矩阵乘法的结果是一个新的矩阵 C,其中 C 的每个元素是 A 的对应行与 B 的对应列的点积。假设 A 是一个 m×n 的矩阵,B 是一个 n×p 的矩阵,那么结果矩阵 C 将是一个 m×p 的矩阵。

实例

def matrix_multiply(A, B):
    # 获取矩阵 A 和 B 的维度
    rows_A = len(A)
    cols_A = len(A[0])
    rows_B = len(B)
    cols_B = len(B[0])

    # 检查矩阵 A 的列数是否等于矩阵 B 的行数
    if cols_A != rows_B:
        raise ValueError("矩阵 A 的列数必须等于矩阵 B 的行数")

    # 初始化结果矩阵 C,大小为 rows_A x cols_B
    C = [[0 for _ in range(cols_B)] for _ in range(rows_A)]

    # 进行矩阵乘法
    for i in range(rows_A):
        for j in range(cols_B):
            for k in range(cols_A):
                C[i][j] += A[i][k] * B[k][j]

    return C

# 示例矩阵
A = [[1, 2, 3],
     [4, 5, 6]]

B = [[7, 8],
     [9, 10],
     [11, 12]]

# 调用矩阵乘法函数
result = matrix_multiply(A, B)

# 输出结果
for row in result:
    print(row)

代码解析:

  1. matrix_multiply 函数接受两个矩阵 A 和 B 作为输入。
  2. 首先获取矩阵 A 和 B 的维度,并检查矩阵 A 的列数是否等于矩阵 B 的行数,如果不相等则抛出错误。
  3. 初始化结果矩阵 C,大小为 rows_A x cols_B,所有元素初始化为 0。
  4. 使用三重循环进行矩阵乘法计算,外层循环遍历 A 的行,中层循环遍历 B 的列,内层循环计算点积并累加到 C 的对应位置。
  5. 最后返回结果矩阵 C。

输出结果:

[58, 64]
[139, 154]

Document 对象参考手册 Python3 实例