NumPy for MATLAB users

作为 MATLAB 用户,本想写一篇对比 NumPy 和 MATLAB 语法的博客。但是一想,网上应该有不少类似文章。一搜,居然 NumPy 官方也提供了文章。

NumPy for MATLAB users

Table of Rough MATLAB-NumPy Equivalents

文章里面提到:

  • MATLAB 矩阵用 1 作为起始下标,而 Numpy 则类似于 Python,使用 0 作为起始下标
  • MATLAB 中的切片操作是对复制的数组进行操作,而 NumPy 的切片是原矩阵的引用。
    • 如需进行复制,请使用 B = A.copy()
    • 如下 Python 代码,B 作为 A 的切片,修改 B 会使得 A 变化:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
In [2]: A = np.array([[1,2,3]])

In [3]: A
Out[3]: array([[1, 2, 3]])

In [7]: B = A[0,:-1]

In [8]: B
Out[8]: array([1, 2])

In [10]: B[0] = 2

In [12]: A
Out[12]: array([[2, 2, 3]])