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矩阵的行。

  • 相关阅读:
    BIOS中的UEFI和Legacy启动模式
    php和java中的加密和解密
    Linux 的进程状态
    C++继承:公有,私有,保护
    编译器在构造函数里都做了些什么?
    操作符重载
    C++对象模型学习笔记
    sizeof操作符-结构体与类大小
    C++之智能指针
    C/C++笔试题整理
  • 原文地址:https://www.cnblogs.com/linyihai/p/10421291.html
Copyright © 2011-2022 走看看