矩阵乘法在numpy/matlab/数学上的不同

Posted linyihai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵乘法在numpy/matlab/数学上的不同相关的知识,希望对你有一定的参考价值。

数学意义上的矩阵乘法

技术图片

注意事项:

1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。
2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

乘积-哈达马积(hadamard product)

技术图片

乘积-克罗内克乘积

技术图片

MatLab中的乘法()和点乘(.)

a * b 是进行矩阵相乘, a.*b是a矩阵的每一个元素乘以b矩阵对应位置的元素
形成的一个新矩阵。

Numpy

In [1]: import numpy as np
In [2]: a = np.array([[1, 2, 3], [4, 5, 6]])
In [3]: b = np.array([[1, 2, 3], [4, 5, 6]])
In [4]: a * b
Out[4]: 
array([[ 1,  4,  9],
       [16, 25, 36]])
In [7]: np.multiply(a, b)
Out[7]: 
array([[ 1,  4,  9],
       [16, 25, 36]])

重点numpy中 a * b(相当于np.multiply(a, b)) 相当于数学上的乘积-哈达马积,相当于matlab中的点乘(.), 并且要求a,b矩阵的shape一致;
numpy中a.dot(b)(相当于np.dot(a,b)) 相当于数学上矩阵的乘法,相当于matlab中的矩阵乘法(a
b), 要求a矩阵的列等于b矩阵的行。





以上是关于矩阵乘法在numpy/matlab/数学上的不同的主要内容,如果未能解决你的问题,请参考以下文章

没涉及到最值求解;观点:矩阵乘法无法表达出结果。 现实生活中事件现象的数学表达

iPhone上的VFP单元矩阵乘法问题

离散数学 关系矩阵的布尔乘法的简便方法

Python Numpy中的几个矩阵乘法

矩阵乘法快速幂 cojs 1717. 数学序列

矩阵乘法——连乘中的数学问题