【问题标题】:How do I multiply a (2,4)-matrix with a (4,1)-matrix?如何将 (2,4) 矩阵与 (4,1) 矩阵相乘?
【发布时间】: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


【解决方案1】:
u = np.array([[pl[0][0]],[pl[0][1]],[pl[0][0]**2],[pl[0][1]**2]]).reshape(4,1)

【讨论】:

    猜你喜欢
    • 2015-01-24
    • 2016-12-11
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    相关资源
    最近更新 更多