如果是学生,或者研究人员,比如研究信号处理,那么用matlab比较好,有大量现成工具箱和前人的成果可以借鉴。如果是产品化项目,那么python比较好,可以做web后台,可以打包成应用程序,效率相对matlab也要高那么一点点。
如果是信号、数据方面的工程人员,建议还是两个都掌握吧,也不复杂,都是脚本式的语言,比C++什么的易学多了。
下面从两者各自的应用做个对比。
一、python的优势
Python相对于Matlab最大的优势:免费。国内可能不是很在乎这个,但在国外是个很关键的问题。
Python次大的优势:开源。你可以大量更改科学计算的算法细节。
可移植性,Matlab必然不如Python。但你主要做Research,这方面需求应当不高。
第三方生态,Matlab不如Python。比如3D的绘图工具包,比如GUI,比如更方便的并行,使用GPU,Functional等等。长期来看,Python的科学计算生态会比Matlab好。
语言更加优美。另外如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。
python作为一种通用编程语言,可以做做Web,搞个爬虫,编个脚本,写个小工具用途很广泛。
二、matlab的优势
学术界大量使用matlab做仿真,做研究的话容易找到代码参考;
语法相对python更灵活一些,matlab写程序基本不用套路,所谓老夫撸matlab就一个字,干;