Python对比Matlab,有什么决定性的优势
Python的优势:
Python相对于Matlab最大的优势:免费。但既然你已经能用上Matlab,想必不在乎这个了。
Python次大的优势:开源。你可以大量更改科学计算的算法细节。
可移植性,Matlab必然不如Python。但你主要做Research,这方面需求应当不高。
第三方生态,Matlab不如Python。比如3D的绘图工具包,比如GUI,比如更方便的并行,使用GPU,Functional等等。长期来看,Python的科学计算生态会比Matlab好。
语言更加优美。另外如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。
毕竟是通用的编程语言,做做Web,搞个爬虫,编个脚本,写个小工具啥的用处广。要说非得用Matlab干么也成,只是……
Community. 既然你们实验室用Matlab,说明搞你们这个领域的大部分学者可能都用Matlab。交流起来必然更加方便。
Simulink, 只能说这是个良心作品,不过题主好像用不着……
Matlab本来号称更快,但实际上由于Python越来越完善的生态,这个优势已经逐渐丧失了。这里有一个迭代有限差分法计算2D拉普拉斯方程的对比(500x500的grid,100次迭代),可以参考一下。
Legacy优势。你以前的代码都是Matlab写的,自己Matlab用的也熟,换成新的话,总得看一堆书吧,总得出一堆bug吧,总得踩一堆坑吧。这段时间也是Matlab的优势。或许本来这段时间可以再出一些活呢。毕竟目的是Research,这些工具都是帮忙验证idea的罢了。
Matlab的优势:
Type of solution : Time taken (sec)
Python (estimate) : 1500.0
Python + Psyco (estimate) : 1138.0
Python + NumPy Expression : 29.3
Blitz : 9.5
Inline : 4.3
Fast Inline : 2.3
Python/Fortran : 2.9
Pyrex : 2.5
Matlab (estimate) : 29.0
Octave (estimate) : 60.0
Pure C++ : 2.16
数据来自PerformancePython -