如果是学生,或者研究人员,比如研究信号处理,那么用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就一个字,干;
有simulink。有人说simulink没什么用,其实还是挺有用的,比如通信建模,另外simulink可以生产DSP或者FPGA代码,有的时候很有用。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
三、两者的区别
python是一种通用语言,而matlab更像是一个平台。
在你纠结于python应该使用哪个库,哪个ide,怎么把ide改成中文,为什么ide有bug,能不能交互式编写的时候。matlab已经完成了从入门到建模。