矩阵乘法在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中的矩阵乘法(ab), 要求a矩阵的列等于b矩阵的行。
以上是关于矩阵乘法在numpy/matlab/数学上的不同的主要内容,如果未能解决你的问题,请参考以下文章