MATLAB与Python numpy矩阵操作对应表

背景

NumPy和Matlab不一样,对于多维数组的运算,缺省情况下并不使用矩阵运算,可以调用相应的函数对数组进行矩阵运算。或者使用numpy库提供了的matrix类,用matrix类创建的是矩阵对象,它们的加减乘除运算缺省采用矩阵方式计算,用法和matlab十分类似。不过一般用户很容易将NumPy中同时存在的ndarray和matrix对象弄混,一般不建议在大程序中使用。下面简单介绍python的多维数组怎么进行常用的矩阵运算,以及对应的matlab写法。

对应表

用法 MATLAB Python 说明
乘法 A*B A.dot(B)
点乘 A.*B A*B
计算X满足指定条件的元素个数 numel(X) X.size
返回矩阵X的行数 size(X, 1) X.shape[0]
返回矩阵X的列数 size(X, 2) X.shape[1]
共轭转置 X’ X.conj().T
转置 X.’ X.T
数组X的1至5行的所有列的元素 X(1:5, :) X[0:5, :]
数组X的1至行中的4至7列元素 X(1:2, 4:7) X[0:2][:, 3:7]
以X的内容堆叠在(MxN)的矩阵B中 repmat(X, 2, 3) np.tile(X, (2, 3)) X是一个3x4x5的矩阵,有B = repmat(A,2,3)则最后的矩阵是6x12x5
水平组合 [a b] or [a, b] np.hstack((a,b))
垂直组合 [a; b] np.vstack((a,b))
产生一个M*N的矩阵 ones(M,N) np.ones((M,N))

博主这里总结列举了一些常用的操作,后期遇到别的还会继续更新。

今天发现一篇更详细的博客,大家可以参考:http://blog.sina.com.cn/s/blog_9eb617490102wsj7.html

你可能感兴趣的:(Python,matlab)