python和matlab哪個(gè)好?
一、Python簡(jiǎn)介
本文引用地址:http://www.ex-cimer.com/article/201808/388133.htmPython是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議[2] 。Python語法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語句縮進(jìn)。
Python執(zhí)行:
Python在執(zhí)行時(shí),首先會(huì)將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),然后再由Python Virtual Machine(Python虛擬機(jī))來執(zhí)行這些編譯好的byte code。這種機(jī)制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級(jí)的Virtual Machine。這里的高級(jí)并不是通常意義上的高級(jí),不是說Python的Virtual Machine比Java或.NET的功能更強(qiáng)大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實(shí)機(jī)器的距離更遠(yuǎn)。或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。
基于C的Python編譯出的字節(jié)碼文件,通常是.pyc格式。除此之外,Python還可以以交互模式運(yùn)行,比如主流操作系統(tǒng)Unix/Linux、Mac、Windows都可以直接在命令模式下直接運(yùn)行Python交互環(huán)境。直接下達(dá)操作指令即可實(shí)現(xiàn)交互操作。
Python的優(yōu)勢(shì):
Python相對(duì)于Matlab最大的優(yōu)勢(shì):免費(fèi)。但既然你已經(jīng)能用上Matlab,想必不在乎這個(gè)了。
Python次大的優(yōu)勢(shì):開源。你可以大量更改科學(xué)計(jì)算的算法細(xì)節(jié)。
可移植性,Matlab必然不如Python。但你主要做Research,這方面需求應(yīng)當(dāng)不高。
第三方生態(tài),Matlab不如Python。比如3D的繪圖工具包,比如GUI,比如更方便的并行,使用GPU,F(xiàn)uncTIonal等等。長(zhǎng)期來看,Python的科學(xué)計(jì)算生態(tài)會(huì)比Matlab好。
語言更加優(yōu)美。另外如果有一定的OOP需求,構(gòu)建較大一點(diǎn)的科學(xué)計(jì)算系統(tǒng),直接用Python比用Matlab混合的方案肯定要簡(jiǎn)潔不少。
畢竟是通用的編程語言,做做Web,搞個(gè)爬蟲,編個(gè)腳本,寫個(gè)小工具啥的用處廣。
二、MATLAB簡(jiǎn)介
MATLAB是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。
MATLAB和MathemaTIca、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。
Matlab的優(yōu)勢(shì):
Community. 既然你們實(shí)驗(yàn)室用Matlab,說明搞你們這個(gè)領(lǐng)域的大部分學(xué)者可能都用Matlab。交流起來必然更加方便。
Simulink, 只能說這是個(gè)良心作品,不過題主好像用不著……
Matlab本來號(hào)稱更快,但實(shí)際上由于Python越來越完善的生態(tài),這個(gè)優(yōu)勢(shì)已經(jīng)逐漸喪失了
Python相比于Matlab的最大優(yōu)勢(shì)是:Python是一門通用編程語言,實(shí)現(xiàn)科學(xué)計(jì)算功能的numpy、scipy、matplotlib只是Python的庫(kù)和Package而已,除此之外Python還有用于各種用途的庫(kù)和包,比如用于GUI的PyQt和wxPython,用于Web的Django和Flask
Matlab相比于Python最大的優(yōu)勢(shì)是:它專門就是給數(shù)值計(jì)算開發(fā)的,在數(shù)值計(jì)算這個(gè)領(lǐng)域庫(kù)最多、用的人最多、出的書最多
如果你做策略研究,做數(shù)據(jù)分析,兩者功能上差不多,但是應(yīng)該選擇matlab,因?yàn)椋?/p>
1 Python的文檔沒有Matlab的詳細(xì)。
2 Matlab將所有的功能整合了在一起,而Python需要自己一個(gè)一個(gè)安裝所需要的包,不同的包的代碼風(fēng)格還不太一樣。
如果你還要做網(wǎng)絡(luò)爬蟲,數(shù)據(jù)清洗等偏I(xiàn)T的工作,那么Python更優(yōu)。
簡(jiǎn)單的說,Python是通用語言,什么都能做,而matlab擅長(zhǎng)計(jì)算。
評(píng)論