给定2个矩阵A和B,请计算A * B
时间: 2024-05-08 16:21:26 浏览: 32
在进行矩阵乘法之前,需要保证矩阵A的列数等于矩阵B的行数,否则无法进行矩阵乘法运算。假设矩阵A是m行n列的矩阵,矩阵B是n行p列的矩阵,则它们的乘积C是一个m行p列的矩阵,其中矩阵C的第i行第j列的元素为矩阵A的第i行与矩阵B的第j列的乘积之和。
具体地,如果矩阵A为:
A = [a11, a12, ..., a1n;
a21, a22, ..., a2n;
...,
am1, am2, ..., amn]
矩阵B为:
B = [b11, b12, ..., b1p;
b21, b22, ..., b2p;
...,
bn1, bn2, ..., bnp]
则它们的乘积C为:
C = [c11, c12, ..., c1p;
c21, c22, ..., c2p;
...,
cm1, cm2, ..., cmp]
其中:
cij = ai1 * b1j + ai2 * b2j + ... + ain * bnj
因此,矩阵乘法的具体实现可以采用两层循环来完成,第一层循环遍历矩阵A的每一行,第二层循环遍历矩阵B的每一列,计算对应的乘积并累加到矩阵C的对应元素中即可。具体代码如下:
```python
def matrix_multiply(A, B):
m, n = len(A), len(A[0])
n_2, p = len(B), len(B[0])
if n != n_2:
raise ValueError("矩阵A的列数必须等于矩阵B的行数。")
C = [[0] * p for i in range(m)]
for i in range(m):
for j in range(p):
for k in range(n):
C[i][j] += A[i][k] * B[k][j]
return C
```
其中,A和B分别表示要相乘的矩阵,函数返回它们的乘积C。