【问题标题】:Differences between numpy and matlab Dot Product / Matrix multiplication [duplicate]numpy和matlab点积/矩阵乘法之间的区别[重复]
【发布时间】:2015-05-25 13:59:23
【问题描述】:

我在matlab主页上找到了以下例子(http://de.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html),点积的结果是 [6,15] [10,20] Tha 与我在 numpy 中的结果不同。这是个问题吗?

    In [79]: W1 * W2
Out[79]:
array([[  3.,   0.],
       [  3.,  20.]])

In [80]: W1
Out[80]:
array([[ 1.,  2.],
       [ 3.,  4.]])

In [81]: W2
Out[81]:
array([[ 3.,  0.],
       [ 1.,  5.]])

In [82]: np.dot(W1,W2)
Out[82]:
array([[  5.,  10.],
       [ 13.,  20.]])

【问题讨论】:

    标签: python matlab numpy matrix


    【解决方案1】:

    您从该链接中获取了错误的数组,特别是 W1

    应该是

    In [41]: W1
    Out[41]:
    array([[ 1.,  3.],
           [ 2.,  4.]])
    

    W2 有它

    In [42]: W2
    Out[42]:
    array([[ 3.,  0.],
           [ 1.,  5.]])
    
    In [43]: np.dot(W1, W2)
    Out[43]:
    array([[  6.,  15.],
           [ 10.,  20.]])
    
    In [44]: W1*W2
    Out[44]:
    array([[  3.,   0.],
           [  2.,  20.]])
    

    现在,输出与 Matlab 输出匹配。

    【讨论】:

      【解决方案2】:

      当您执行 W1 * W2 时,您使用 hadamard 乘积,它是元素乘积,而 np.dot 是矩阵乘法。

      【讨论】:

        猜你喜欢
        • 2018-09-14
        • 1970-01-01
        • 1970-01-01
        • 2017-06-30
        • 2020-05-08
        • 2015-03-31
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        相关资源
        最近更新 更多