matlab是什么?它是一個軟件,也是一門語言。20世紀七十年代,cleve moler 為了減輕學(xué)生編程的負擔,使用 Fortran 編寫了最早的 matlab 軟件。這款 matlab 軟件使用一種全新的語言,使用這種語言能夠簡單的進行程序的編寫以達到數(shù)據(jù)分析、工程制圖、信號處理、算法編寫、科學(xué)計算等功能。正因為它在數(shù)學(xué)類科技應(yīng)用的軟件中的數(shù)值計算方面首屈一指,因此它也被稱為三大數(shù)學(xué)軟件之一。
因為 matlab 在1984年被 mathworks 公司正式推向市場,而且這個軟件的確好用,所以該軟件迅速在市場上傳開了。到20世紀90年代的時候,matlab 已經(jīng)成為國際控制界的標準計算軟件。
到這里,matlab 還是順風(fēng)順水,直到另一門語言的出現(xiàn),matlab 才出現(xiàn)了下滑的趨勢。沒錯,這么語言就是接下來的主角——python。
1989年的一個圣誕節(jié),Guido Van Rossum 為了打發(fā)時間,設(shè)計出了 python 這門語言。為了避免其步 ABC 語言的后塵,Guido 決定對其進行開源。由于其簡單易學(xué)易用的特性,python 很快就火了起來,同時因為其開源的特點,很多開發(fā)者也喜歡將自己寫的第三方庫進行開源。因此 python 的社區(qū)具有良好的生態(tài),很多可能被重復(fù)設(shè)計的代碼被避免了。
講到這里,還是沒講 python 是如何和 matlab 進行競爭的。其實,matlab 跟 python 競爭起來的原因,其實是因為開源的第三方庫。簡單的來說,matlab 這個軟件它一開始就被商業(yè)化了,商業(yè)化的軟件最終目的都是為了賺錢。而 python 它一開始就是開源,所以不存在盈利。使用者在選擇使用 matlab 的時候需要向 mathworks 公司支付一筆授權(quán)的費用(而且該軟件價格不菲),而如果使用 python 的話,這筆費用就省去了。
然后問題的關(guān)鍵在于第三方庫。python 本身的自帶的庫并沒有什么特殊之處,但它可以導(dǎo)入很多第三方庫,其中有很多庫都可以用來做科學(xué)計算。除了 matlab 的一些專業(yè)性很強的工具箱還無法被替代之外,matlab 的大部分常用功能都可以在 python 社區(qū)中找到相應(yīng)的第三方庫。而且有很多開源的科學(xué)計算庫也都提供了 python 的調(diào)用接口。雖然在數(shù)值計算速度方面可能相比于 matlab 還有一定差距,不過這并不影響使用。
另外,開源的第三方庫的維護,是由整個社區(qū)進行維護的,而 matlab 的工具維護是由一個公司維護的。由于公司的特殊性質(zhì),你永遠無法知道這家公司能不能永遠穩(wěn)定的為你提供維護。
還有一部分原因是,有些用戶其實只需要部分功能,使用 python 可以簡單快速地搭配出自己的環(huán)境,而 matlab 則需要下載十幾個G的安裝包到本地。捆綁式的環(huán)境讓需要自由組合功能的用戶感到不適(就像你只需要一把水果刀,結(jié)果卻需要買一整個廚房的用具一樣)。
另外,雖然數(shù)學(xué)分析在其他方面的開發(fā)需求較低,但是當涉及到界面設(shè)計,網(wǎng)絡(luò)分析,文件管理等需求的時候,matlab 并不易用。反觀 python,使用豐富的拓展庫可以實現(xiàn)完整應(yīng)用所需的各種功能。而且作為一門易用的編程語言,python 的代碼邏輯和風(fēng)格使得其更容易進行維護。
正因為以上原因,現(xiàn)在的科研以及數(shù)學(xué)分析的時候,更多的會選擇免費的 python 而不是選擇更優(yōu)秀一點的matlab。
TIOBE指數(shù):2021年6月全球編程語言排行榜,Python直逼第一
如以上鏈接所指文章數(shù)據(jù)所示,更多的開發(fā)者選擇了 python,matlab則排在第19名。
不過雖然 matlab 的市場被 python 一步步蠶食,但有一塊市場還是 python 無法撼動的,那就是 matlab+simulink。它在數(shù)十年內(nèi),在工業(yè)設(shè)計領(lǐng)域的地位還是無可撼動的,而且有些老的 matlab 項目也需要使用 matlab 語言來進行維護,所以 matlab 還有存在的價值。
以上就是關(guān)于 matlab 的用戶轉(zhuǎn)到 python 的原因介紹,如果說 python 和 matlab 哪個更值得學(xué)的話。其實兩個都很值得學(xué),但是小編更鼓勵 matlab 程序員能轉(zhuǎn)到 python 這邊來。
更多 python在線微課,盡在 W3Cschool。