矢量表示matlab与numpy

时间:2017-08-13 07:56:51

标签: python matlab numpy

我必须在MATLAB和NumPy(Python 3.x)之间切换。总是给我带来问题的是NumPy中矢量的使用方式。在MATLAB中,矢量或多或少只是1xn或nx1矩阵。举个例子:

b=np.array([0,2])

是一个(2,)数组,实际上它对任何矩阵运算都没有用,因为在这种情况下我必须先做b.reshape(2,1)之类的事情。几乎在任何时候我都需要重塑函数返回的向量/数组。有人可以告诉我为什么默认情况下NumPy数组不被视为列或行向量?而且因为我必须经常这样做...重塑最好的方法吗?

1 个答案:

答案 0 :(得分:1)

恕我直言,Numpy的基于数组的语法比基于Matlab的基于线性代数的语法更加灵活和方便。在大多数情况下,numpy代码将更干净,更容易编写/遵循。当您执行简单线性代数运算时,只有少数例外情况出现,其中Matlab的语法略微更有效。

请注意,在大多数情况下,您不需要A.dot(b) numpy数组来模仿matlab的操作。例如A@bA(python 3)其中numpy.array是矩阵(2维A*b)与Matlab中的reshape基本相同。给自己一些时间来熟悉numpy,你会发现它是Matlab,#34;强迫"你过度使用/滥用{{1}}功能,而不是numpy。