如果是學生,或者研究人員,比如研究信號處理,那么用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已經完成了從入門到建模。