新聞中心

python和matlab哪個好?

作者: 時間:2018-08-31 來源:網(wǎng)絡(luò) 收藏

一、Python簡介

本文引用地址:http://butianyuan.cn/article/201808/388133.htm

Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議[2] 。Python語法簡潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語句縮進(jìn)。

Python執(zhí)行:

Python在執(zhí)行時,首先會將.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是一種更高級的Virtual Machine。這里的高級并不是通常意義上的高級,不是說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)勢:

Python相對于Matlab最大的優(yōu)勢:免費(fèi)。但既然你已經(jīng)能用上Matlab,想必不在乎這個了。

Python次大的優(yōu)勢:開源。你可以大量更改科學(xué)計(jì)算的算法細(xì)節(jié)。

可移植性,Matlab必然不如Python。但你主要做Research,這方面需求應(yīng)當(dāng)不高。

第三方生態(tài),Matlab不如Python。比如3D的繪圖工具包,比如GUI,比如更方便的并行,使用GPU,F(xiàn)uncTIonal等等。長期來看,Python的科學(xué)計(jì)算生態(tài)會比Matlab好。

語言更加優(yōu)美。另外如果有一定的OOP需求,構(gòu)建較大一點(diǎn)的科學(xué)計(jì)算系統(tǒng),直接用Python比用Matlab混合的方案肯定要簡潔不少。

畢竟是通用的編程語言,做做Web,搞個爬蟲,編個腳本,寫個小工具啥的用處廣。


二、MATLAB簡介

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(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ì)、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計(jì)與分析等領(lǐng)域。


Matlab的優(yōu)勢:

Community. 既然你們實(shí)驗(yàn)室用Matlab,說明搞你們這個領(lǐng)域的大部分學(xué)者可能都用Matlab。交流起來必然更加方便。

Simulink, 只能說這是個良心作品,不過題主好像用不著……

Matlab本來號稱更快,但實(shí)際上由于Python越來越完善的生態(tài),這個優(yōu)勢已經(jīng)逐漸喪失了


三、區(qū)別

Python相比于Matlab的最大優(yōu)勢是:Python是一門通用編程語言,實(shí)現(xiàn)科學(xué)計(jì)算功能的numpy、scipy、matplotlib只是Python的庫和Package而已,除此之外Python還有用于各種用途的庫和包,比如用于GUI的PyQt和wxPython,用于Web的Django和Flask

Matlab相比于Python最大的優(yōu)勢是:它專門就是給數(shù)值計(jì)算開發(fā)的,在數(shù)值計(jì)算這個領(lǐng)域庫最多、用的人最多、出的書最多


四、如何選擇

如果你做策略研究,做數(shù)據(jù)分析,兩者功能上差不多,但是應(yīng)該選擇,因?yàn)椋?/p>

1 Python的文檔沒有Matlab的詳細(xì)。

2 Matlab將所有的功能整合了在一起,而Python需要自己一個一個安裝所需要的包,不同的包的代碼風(fēng)格還不太一樣。

如果你還要做網(wǎng)絡(luò)爬蟲,數(shù)據(jù)清洗等偏I(xiàn)T的工作,那么Python更優(yōu)。

簡單的說,Python是通用語言,什么都能做,而matlab擅長計(jì)算。



關(guān)鍵詞: python matlab

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉