math - 如何将两个矩阵相乘?
问题描述
我试图编写一个用于将两个矩阵相乘的函数。矩阵由类似列表中的列表表示[[1, 2], [3, 4]]
。虽然它给出了结果,但它是不正确的。
def Matrice_multiplicator(a, z):
if len(a[0])==len(z):
m=Matrice_create(len(a))
b=0
c=0
k=1-1
while b<len(a):
for i in range(len(a[b])):
while c<len(a[0]):
k+=a[b][c]*z[c][b]
print(k)
c+=1
m[b].append(k)
b+=1
return m
else:
return "Not multiplicable"
解决方案
标准 Python 中的矩阵乘法可能如下所示:
def matrix_multiplication(A, B):
a = len(A)
b = len(A[0])
c = len(B[0])
if b != len(B):
print (f"Wrong combination of dimensions: {a}x{b} and {len(B)}x{c}")
else:
return [[sum([A[i][k]*B[k][j] for k in range(b)])
for j in range(c)]
for i in range(a)]
A = [[1, 2, 3],
[4, 5, 6]]
B = [[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]
print(matrix_multiplication(A, B))
结果:
[[38, 44, 50, 56],
[83, 98, 113, 128]]
推荐阅读
- javascript - Typescript 2.8.3:没有公共属性的联合类型
- compression - 解压gz SQL文件
- image - 检测 JPEG 中的 MCU 边界
- c# - 将简单的 lambda 表达式或本地函数分配给委托的性能
- r - 带有嵌入式 shinyapp 的 R 笔记本:将变量从 shinyapp 块传递到下一个代码块
- android - 致命异常:线程 3 java.lang.IndexOutOfBoundsException:索引:0,大小:0
- reactjs - 让消息在反应一段时间后消失
- sql - 根据以前的组计算唯一条目
- vba - Excel VBA单元格大小写取决于其他单元格
- xamarin - 需要较低版本的visual studio for mac