python有什麼是可以用matlab代替實現,甚至更有優勢的嗎?

本人目前處於二者都買入門的狀態……兩者都要學,但目前matlab要抓的更緊一些。


不太懂python,只說說matlab的特點吧,前面幾個答案都沒說到點子上。

matlab最為unique的一點是simulink,是基於模型的系統設計方法。因此simulink在電氣系統模擬,機電系統模擬,甚至機械系統模擬中佔有不可替代的位置。


MATLAB 在 signal processing, sparse matrix, Simulink 等 Python 社區不太關注/成熟的領域是有優勢的(bug 少,功能豐富)。

其他方面,只要你入了門,就會發現 MATLAB 被完爆。以下是幾個例子。

  1. numpy 的 broadcasting。這個在新版本的 MATLAB 裡面已經出現了,但是我感覺總體還是沒有 Python 的優雅。比如 Python 3.5 之後可以對矩陣乘法 (`@`) 做 broadcasting。
  2. h5py 的 tree iteration (visititems),無限大 dataset,partial load / save。相比而言,MATLAB 的 HDF5 API 等於殘廢。
  3. joblib 的輕量 parallel for loop,可以在多個 worker 之間共享內存。
  4. 各種 Deep Learning 框架,比如 PyTorch, TensorFlow。
  5. Jupyter Notebook。
  6. 在自動測試方面完善的社區支持,比如 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__"?

TAG:Python | 編程 | MATLAB |