首页 > 其他 > 详细

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

时间:2019-02-23 00:13:20      阅读:209      评论:0      收藏:0      [点我收藏+]

数学意义上的矩阵乘法

技术分享图片

注意事项:

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/数学上的不同

原文:https://www.cnblogs.com/linyihai/p/10421291.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!