MATLAB在逐漸被Python淘汰嗎?
不會被取代,簡單的說,Python是通用語言,什么都能做,而matlab擅長計算。
兩者的區別:Python相比于Matlab的最大優勢是:
Python是一門通用編程語言,實現科學計算功能的numpy、scipy、matplotlib只是Python的庫和Package而已,除此之外Python還有用于各種用途的庫和包,比如用于GUI的PyQt和wxPython,用于Web的Django和Flask
Matlab相比于Python最大的優勢是:
它專門就是給數值計算開發的,在數值計算這個領域庫最多、用的人最多、出的書最多
如何選擇python和matlab如果你做策略研究,做數據分析,兩者功能上差不多,但是應該選擇matlab,因為:
Python的文檔沒有Matlab的詳細。
Matlab將所有的功能整合了在一起,而Python需要自己一個一個安裝所需要的包,不同的包的代碼風格還不太一樣。
如果你還要做網絡爬蟲,數據清洗等偏IT的工作,那么Python更優。
MATLABMATLAB 是一種用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境。使用 MATLAB,可以較使用傳統的編程語言(如 C、C++ 和 Fortran)更快地解決技術計算問題。
隨著MATLAB工具箱的不斷添加和完善,M語言也逐漸成為工程界的準通用標準語言,官網稱:MATLAB - The Language Of Technical Computing。
大學理工科專業一般都開設了或選修或必修的MATLAB相關課程。很多新出版的教材,計算機輔助教學的工具軟件開始選用MATLAB。
MATLAB以其簡潔易學的語法、友好的界面和完善的文檔系統逐漸深入人心并將繼續擴大它的控制領地。
然而,MATLAB也有著很大的局限性。首先,是價格。作為一款商業軟件,獲得正版授權,價格不菲。就說最便宜的學生版,核心組件單個授權要花99刀,想使用額外工具箱,則是每個工具箱29刀。 正如你能想到的,商業版本更貴。
其次,是版權。mathworks論壇活躍著很多用戶,也有很多有價值的代碼,但是,版權歸mathworks公司,要想使用必須獲得它的授權。
再次,是語言完善性。MATLAB進行數學計算的表現無可置疑,但是實際的科學計算還有文件操作、界面設計等。MATLAB在這些領域功能較弱或者很麻煩。應該可以說,MATLAB不是一種完善的語言。
還有:學術界大量使用matlab做仿真,做研究的話容易找到代碼參考;
語法相對python更靈活一些,matlab寫程序基本不用套路,所謂老夫擼matlab就一個字,干;
有simulink。有人說simulink沒什么用,其實還是挺有用的,比如通信建模,另外simulink可以生產DSP或者FPGA代碼,有的時候很有用。
Python首先,Python完全免費,絕大多數科學計算相關擴展庫也都是免費的,大多也都是是開源的,所以金錢問題完全不用考慮。版權問題也基本不用考慮,眾多的實例程序可以讓你拿去就用。(有時候也需要考慮,因為有些授權,如GPL授權,具有“傳染性”)。考慮控制版權更嚴格的諸如美國之類的國家,有著眾多的研究人員和大學生使用Python,并有很多網絡提供了交流平臺,在這個平臺可以獲得更多的交流學習機會。
其次,Python是一門更易學更嚴謹的面向對象的程序設計語言。作為通用程序設計語言的Python,有更為嚴格清晰的語法,可以輕易完成界面、文件、封裝等高階需求。最后,不得不提的就是性能。MATLAB作為科學計算工具,經過了近乎苛刻的優化,Python呢?
實話說,純Python的速度確實不怎么地,但是使用Python的科學計算擴展庫numpy、scipy等之后,速度和MATLAB不相上下。
再次大的優勢:開源。你可以大量更改科學計算的算法細節。
可移植性,Matlab必然不如Python。但你主要做Research,這方面需求應當不高。
第三方生態,Matlab不如Python。比如3D的繪圖工具包,比如GUI,比如更方便的并行,使用GPU,Functional等等。長期來看,Python的科學計算生態會比Matlab好。語言更加優美。另外如果有一定的OOP需求,構建較大一點的科學計算系統,直接用Python比用Matlab混合的方案肯定要簡潔不少。
python作為一種通用編程語言,可以做做Web,搞個爬蟲,編個腳本,寫個小工具用途很廣泛。