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