zoukankan      html  css  js  c++  java
  • 矩阵乘法在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矩阵的行。

  • 相关阅读:
    绘制八卦阵
    绘制奥运五环
    绘制渐变的圆
    实验报告
    大学排名
    第一条爬虫
    自己的第一个网页
    科学计算与可视化
    类和正则表达(自动更正 代数运算)
    预测比赛
  • 原文地址:https://www.cnblogs.com/linyihai/p/10421291.html
Copyright © 2011-2022 走看看