MATLAB与Python在矩阵运算上的异同

1. MATLAB矩阵运算

B=A*A %矩阵点乘
B=A.*A %矩阵元素智能相乘

AT=A.' %矩阵转置
ACT=A' %求共轭转置矩阵
AI=inv(A) %矩阵求逆

2. pyhton矩阵运算

B=A@A #矩阵点乘,适用于Python 3.5以上版本
C=A*A #矩阵元素智能相乘
D=np.dot(A,A) #矩阵点乘

AT=A.T  #矩阵转置
AT1=np.transpose(A) #矩阵转置
ACT=A.conj().T#求共轭转置矩阵
AI=np.linalg.inv(A) #矩阵求逆

3. array还是matrix?哪个更好用?

NumPy提供了array与matrix两个类用于矩阵运算。array类可以用来处理各种n维数组的数学运算,而matrix类则是专用来进行二位矩阵运算的。这两种类只有一下几个微小的差异。用哪种类进行定义矩阵更好一些呢?

Numpy的开发者团队推荐我们使用array类进行矩阵运算,简要原因如下:

  1. arrays是numpy库针对矢量/张量/矩阵定义的标准类。大多数Numpy返回的内容是array而非matrices类。
  2. array类进行元素间智能运算的代码与进行线性代数运算有着明显区别。
  3. Python 3.5以后NumPy支持使用 ‘@’ 符号进行矩阵点成操作
  4. 后续Numpy考虑删去np.matrix并将其统一到array类下。

你可能感兴趣的:(MATLAB,Python算法,python,matlab,矩阵)