如何设计函数使矩阵相乘
时间: 2024-05-06 11:19:33 浏览: 130
首先,我们需要明确矩阵相乘的规则:两个矩阵 A 和 B 相乘,要求 A 的列数等于 B 的行数,结果矩阵 C 的行数等于 A 的行数,列数等于 B 的列数。
基于这个规则,我们可以设计一个函数,接收两个矩阵作为参数,返回它们的乘积矩阵。实现步骤如下:
1. 首先,判断两个矩阵的列数和行数是否满足相乘的条件,如果不满足,返回空矩阵或抛出异常。
2. 创建一个结果矩阵,行数为 A 的行数,列数为 B 的列数。
3. 遍历结果矩阵的每个元素,计算出该位置的值。
4. 计算一个元素的方法是,将 A 的对应行和 B 的对应列进行内积(即对应位置的乘积相加),结果就是该元素的值。
5. 将计算得到的值填入结果矩阵对应位置。
6. 遍历完结果矩阵的所有元素后,返回结果矩阵。
以下是 Python 代码示例:
```python
def matrix_multiply(A, B):
m, n = len(A), len(A[0])
p, q = len(B), len(B[0])
if n != p:
return []
result = [[0] * q for _ in range(m)]
for i in range(m):
for j in range(q):
for k in range(n):
result[i][j] += A[i][k] * B[k][j]
return result
```
这个函数的时间复杂度是 O(mnp),其中 m、n、p、q 分别是 A 和 B 的行列数。
阅读全文