编写代码,实现只使用一层for循环完成矩阵乘积计算
时间: 2023-03-19 20:22:06 浏览: 93
假设有两个矩阵 A 和 B,A 的大小为 m×n,B 的大小为 n×p,它们的乘积 C 的大小为 m×p。下面是使用一层 for 循环完成矩阵乘积计算的 Python 代码:
```python
def matrix_multiply(A, B):
m, n = A.shape
n, p = B.shape
C = np.zeros((m, p))
for i in range(m):
for j in range(p):
dot_product = 0
for k in range(n):
dot_product += A[i, k] * B[k, j]
C[i, j] = dot_product
return C
```
在这个代码中,第一个 for 循环迭代矩阵 A 的每一行,第二个 for 循环迭代矩阵 B 的每一列,第三个 for 循环计算矩阵 A 的第 i 行和矩阵 B 的第 j 列之间的点积。
注意,在这个代码中,我们使用了 NumPy 的 ndarray 类型,因为它可以更高效地处理大型矩阵的计算。如果你没有使用 NumPy,请先导入 NumPy 库,并将矩阵 A 和 B 转换为 ndarray 类型。
下面是一个使用这个函数计算矩阵乘积的例子:
```python
import numpy as np
A = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([[7, 8, 9], [10, 11, 12]])
C = matrix_multiply(A, B)
print(C)
```
输出:
```
[[ 27. 30. 33.]
[ 61. 68. 75.]
[ 95. 106. 117.]]
```
阅读全文