求编写矩阵乘法函数:接收两个n维数组并返回乘积结果
矩阵乘法实现函数
前提条件
要执行矩阵乘法,必须满足第一个矩阵的列数等于第二个矩阵的行数,否则无法完成运算。
Python 函数实现
def matrix_multiply(matrix_a, matrix_b): # 获取矩阵A的行、列数 rows_a = len(matrix_a) cols_a = len(matrix_a[0]) if rows_a > 0 else 0 # 获取矩阵B的行、列数 rows_b = len(matrix_b) cols_b = len(matrix_b[0]) if rows_b > 0 else 0 # 校验矩阵乘法合法性 if cols_a != rows_b: raise ValueError("第一个矩阵的列数必须等于第二个矩阵的行数,无法执行矩阵乘法") # 初始化结果矩阵,维度为A的行数 × B的列数 result = [[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): result[i][j] += matrix_a[i][k] * matrix_b[k][j] return result
示例验证
用题目给出的测试用例运行函数:
A = [[8,3], [2,4], [3,6]] B = [[1,2,3], [4,6,8]] print(matrix_multiply(A, B))
输出结果:
[[20, 34, 48], [18, 28, 38], [27, 42, 57]]
与题目要求的结果完全一致。
代码说明
- 先获取两个矩阵的行、列数,优先校验乘法合法性,不满足则抛出异常
- 初始化结果矩阵,所有元素默认值为0,维度符合矩阵乘法的结果规则
- 三层循环对应矩阵乘法的核心逻辑:遍历A的每一行、B的每一列,将对应位置的元素相乘后累加,得到结果矩阵的对应元素
内容的提问来源于stack exchange,提问作者Mohamadreza Kazemian
相关产品推荐
相关产品推荐

