【发布时间】:2019-10-13 00:35:11
【问题描述】:
我正在尝试将两个矩阵相乘,但 (4,1) 矩阵被 python 读取为 (4,1,1)。如何确保 python 正确读取我的矩阵并能够将它们相乘?我希望能够从列表中获取数字,将它们放入矩阵中,然后将其与另一个相乘。
这如果是作业的一部分。我试过 numpys .dot 和 .matmul 函数,但都不起作用。而且我认为我没有遗漏任何括号。即使我用实际数字替换列表索引,它也不起作用。
def Md(a,b,c,d,e,f):
Md = np.array([[a,b,0,0],[c,d,e,f]])
return Md
pl = [np.array([[2],[3]])]
u = np.array([[pl[0][0]],[pl[0][1]],[pl[0][0]**2],[pl[0][1]**2]])
print(np.matmul(Md(1,-1,1,0,0.5,0.5),u))
我希望这个乘法的输出是[[-1],[8.5]],但是我得到了这个错误信息:
ValueError: shapes (2,4) and (4,1,1) not aligned: 4 (dim 1) != 1 (dim 1)
【问题讨论】:
-
pl = [np.array([[2],[3]])]不应有外部[]括号,这可能是您问题的根源
标签: python matrix-multiplication