1.首先,先了解下矩阵乘法最基本的工作原理,可简易得理解成 C矩阵(i, j)的值是
由A矩阵 i 行依次与B矩阵 j 列相乘的求和,即:
2.demo实现
x = [[1, 2, 2, 4],
[5, 6, 7, 8]]
y = [[1, 2],
[4, 5],
[3, 6],
[7, 8]]
# 定义结果形式:2*2矩阵
result = [[0, 0],
[0, 0]]
# 迭代运算
for i in range(len(x)):
for j in range(len(y[0])):
for k in range(len(y)):
result[i][j] += x[i][k]*y[k][j]
# 输出矩阵
for a in result:
print(a)
3、基于矩阵结果是行和列的对应相乘的累和迭代,所以选择依次增加,核心算法:
result[i][j] += x[i][k]*y[k][j]
其中,选取 i、j、k进行循环与迭代,k作为中间值联系双方,默认状态下 len(x) 是A矩阵的行数,len(y[0])是b矩阵的列数
最后,记得print信息,结果如下:
[43, 56]
[106, 146]
有问题欢迎讨论提问,如果有做得不够的地方,请你指出。 谢谢!