Python与MATLAB之间的差异
大致有6点:
- 基本数据类型
- Package的组织形式
- 语法
- 索引与切片
- NumPy的Array结构
- 面向对象与面向过程
这里主要针对后面三点进行说明。
索引与切片
为什么Python中采用从零开始的索引方式?
比对Python和MATLAB的索引方法:
1 | # Python |
1 | % MATLAB |
简单来说,MATLAB采用的从一开始的索引方式会带来+1
或-1
的影响,而Python则没有。
NumPy的Array结构
Array可以是多维列阵(包括矩阵),且按行主顺序存储的,而MATLAB则是按列主顺序存储;
三维Array的形状是
(D, R, C)
,等价于MATLAB中三维矩阵(R, C, D)
,例如R: row, C: column, D: depth
面向对象与面向过程
对比Python和MATLAB的字符串处理:
1 | # Python: Object oriented |
1 | % MATLAB: Procedural |
面向对象的编程方式会让程序的逻辑层次比较清楚,且便于管理。
转变策略
- 由下至上:在Python中重构代码
- 由上至下:在MATLAB中调用Python
ps. 刚上大一的时候,《大学计算机基础》这门课上老师讲的就是Python(没有教材,也没有考试),这应该是我学的第一门编程语言。当时也是浅藏辄止,后来也没再用过。记得有一个编程作业:求阿姆斯特朗数,当时我就知道int
可以取整,靠着一个int
函数把程序给写了出来:
1 | def L(x): |