python有什麼是可以用matlab代替實現,甚至更有優勢的嗎?
本人目前處於二者都買入門的狀態……兩者都要學,但目前matlab要抓的更緊一些。
不太懂python,只說說matlab的特點吧,前面幾個答案都沒說到點子上。
matlab最為unique的一點是simulink,是基於模型的系統設計方法。因此simulink在電氣系統模擬,機電系統模擬,甚至機械系統模擬中佔有不可替代的位置。
MATLAB 在 signal processing, sparse matrix, Simulink 等 Python 社區不太關注/成熟的領域是有優勢的(bug 少,功能豐富)。
其他方面,只要你入了門,就會發現 MATLAB 被完爆。以下是幾個例子。
- numpy 的 broadcasting。這個在新版本的 MATLAB 裡面已經出現了,但是我感覺總體還是沒有 Python 的優雅。比如 Python 3.5 之後可以對矩陣乘法 (`@`) 做 broadcasting。
- h5py 的 tree iteration (visititems),無限大 dataset,partial load / save。相比而言,MATLAB 的 HDF5 API 等於殘廢。
- joblib 的輕量 parallel for loop,可以在多個 worker 之間共享內存。
- 各種 Deep Learning 框架,比如 PyTorch, TensorFlow。
- Jupyter Notebook。
- 在自動測試方面完善的社區支持,比如 TravisCI, CircleCI。
總覺得問題問反了的樣子。
python是免費通用編程語言,在文件操作等等方面遠勝matlab.
matlab是數學軟體,也包含很多工程性的組件,可以說,很多東西是現成的。
由於正版matlab需要錢,現在應該是有人一點點把matlab的功能往python上遷移。
你要是問matlab能做,python不能做的,那就是某些過於專業化的包,還沒人遷移。
python比matlab唯一差的地方,也是python的一個極大的弱點,就是它不能傻瓜式操作。
如果你想學python的時候,並不知道anaconda,pythonxy,spyder,而是只知道一個「python」的話。
那麼在別人已經把matlab玩出花的時候,你還在納悶「python是個什麼鬼玩意」呢。
基於模型設計和代碼生成吧,Python是有代碼生成,但是和MATLAB比還是差了不少。
MATLAB的代碼生成已經被廣泛用於工業界,比方說汽車和航空方面等領域的一些演算法設計,MATLAB和 Simulink都支持代碼生成,可以生成在PC或者嵌入式等不同平台的符合工業標準的代碼。
python需要學,matlab不需要學。
有時候需要驗證個演算法什麼的,matlab拿來就用,連看書都不需要,這是非常方便的。難道用python不就是因為太窮買不起matlab嗎?
不用破解,不用網上找破解攻略,修改環境變數,還有就是安裝包小
MATLAB 的應用範圍非常廣,包括信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。附加的工具箱(單獨提供的專用MATLAB函數集)擴展了MATLAB 環境,以解決這些應用領域內特定類型的問題。
轉自百度百科
matlab吧真的很好上手很傻瓜。
但是他會掩蓋住你編程上很多的不好的習慣。如果你一旦切換到fortran,C什麼的,就會瞬間暴露出用matlab所帶來的後果。但是對於一般只要實現下自己的演算法,用一下matlab裡面那些現成的包的人來說,足夠了。我認識幾個海洋的,甚至體育系做生物力學的,都是用matlab輕鬆搞定。不過吧,據我所知,現在的大型計算機,還是以linux系統為主。那麼意味著並行計算,大型科學計算還是得用C,fortran或者,python。
python有一堆很不錯的東西,scipy,numpy,mpi4py等等。玩起來並行比matlab肯定舒服。matlab這個環境目前來看不是主流的並行環境。btw我也沒用matlab並行過。
兩者應該根本不是一個類型的東西。所以其實也沒啥好比較的。emmm看了各個答主的答案,都在說模擬,的確其他功能Python基本都出了相應的庫 ,不過在模擬上我覺得還是專門軟體好用點,僅是個人觀點。p.s.Andrew Ng現在coursera上已經不用MATLAB了,推的好像是 octave吧
兩者都用,不過和你相反,我現在是從matlab向python轉,原因就是matlab的封閉性。matlab的優勢,就是傻瓜式的用,不用為各種庫操心,單純的數據處理到畫圖啥的,非常方便。劣勢呢也很明顯,商用軟體,並且封閉,你永遠也別期望寫完的程序在一個沒有matlab的電腦上用。(現在matlab的大小也太感人,記得至少5G以上了)python呢,我先說劣勢,單獨一個python安裝包不到20M,但你知不知道還有numpy,pandas,matplotlib,sympy,scikit-learn。。。優勢呢,也很明顯,python學會了應用面比matlab大太多了,比如把程序用pyqt加個gui,或者itchat玩微信,或者flask搭建一個個人網站,再或者買個樹莓派玩智能硬體,太多應用的地方了。。。
這兩個都用,基本上現在是演算法模擬和數據處理用Python,涉及到系統集成和系統模擬的(特別說明,這裡的系統集成和模擬不是軟體層面的)內容,完全是Simulink了。我覺得樓主想比較的不是MATLAB和Python,樓主是在比較M語言和Python這兩種腳本語言
Python是個非常完備的通用編程語言。
可以連接資料庫。尤其是自帶的sqlite,用起來超簡便。可以連接網路,獲取網上各種內容。很多爬蟲是python寫的。
可以做網站。Python能用作為後端伺服器語言,開發的時候有Django,Tornado等好用的網路框架。方便的進行各種文件操作,甚至可以把內存中的各種數據類型pickle到文件中。和各大主流編程語言有介面。如果你想在現成的c,java,c#之類寫成的體系中加入python的內容,完全可以實現無縫對接。方便的進行各種科學運算。Matlab只擅長最後一個。有兩個禮拜都入門了(但是實話實說,鑒於兩個語言都是圖靈完備的,所以沒有什麼是matlab能寫而python不能寫的。再進一步,絕大部分matlab能寫的python可以更簡單地寫,matlab寫起來賊難的,python也能寫。你用matlab給我寫個後端瞧一瞧(
Matlab除了Simulink模擬不能被替代之外,其它方面基本被Python給完爆了。Python作為一種膠水語言,也是一種全能語言,能夠被應用於各種領域,而且其開源性有著完善的社區支持,數據分析領域Python是第一語言,完爆其它任何語言。
推薦閱讀:
※做科學計算用Python還是MATLAB?
※Project Euler上的程序語言排行為什麼Matlab比Python低那麼多?
※機器學習和計算機視覺方向的CS碩士研究生,應該往python還是MATLAB發展?
※如何用數學軟體畫一個「聖誕樹」?
※python多進程為什麼一定要__name__="__main__"?