MATLAB簡(jiǎn)介
MATLAB 是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開(kāi)發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。
MATLAB是matrix&laboratory兩個(gè)詞的組合,意為矩陣工廠(矩陣實(shí)驗(yàn)室)。是由美國(guó)mathworks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線(xiàn)性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如C、Fortran)的編輯模式,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平。MATLAB和Mathematica、Maple并稱(chēng)為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類(lèi)科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。
MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶(hù)界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來(lái)解算問(wèn)題要比用C,F(xiàn)ORTRAN等語(yǔ)言完成相同的事情簡(jiǎn)捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C++,JAVA的支持。
做數(shù)據(jù)分析、科學(xué)計(jì)算等離不開(kāi)工具、語(yǔ)言的使用,目前最流行的數(shù)據(jù)語(yǔ)言,無(wú)非是MATLAB,R語(yǔ)言,Python這三種語(yǔ)言。下面我將分析r語(yǔ)言和matlab有什么區(qū)別
R相比于matlab有哪些優(yōu)勢(shì)
1、免費(fèi)。不需要任何授權(quán)費(fèi)用,對(duì)于個(gè)人和企業(yè)來(lái)說(shuō)在成本方面都有一定的吸引力。
2、開(kāi)源。源代碼的開(kāi)放保證了你可以知道所有的細(xì)節(jié),對(duì)于開(kāi)發(fā)者和企業(yè)級(jí)應(yīng)用是有價(jià)值的。
3、在統(tǒng)計(jì)、計(jì)量、數(shù)據(jù)挖掘、可視化群體中的流行度較高。這一點(diǎn)在國(guó)外可能更加成立,這就使得R成為了一個(gè)這類(lèi)群體的大眾語(yǔ)言,描述問(wèn)題和交流起來(lái)非常方便。(Seven quick facts about R)
4、語(yǔ)言靈活度高。作為一個(gè)動(dòng)態(tài)類(lèi)型的語(yǔ)言,R語(yǔ)言的設(shè)計(jì)是比較良好的,對(duì)于元編程、函數(shù)式編程支持度也很好,使得語(yǔ)言具有非常強(qiáng)的靈活性,允許開(kāi)發(fā)者對(duì)語(yǔ)言進(jìn)行計(jì)算(computing on language),以及進(jìn)行非標(biāo)準(zhǔn)計(jì)算(non-standard evaluation),使得語(yǔ)言靈活性和可操作性大大提升。
5、可重復(fù)。R+Markdown等等工具產(chǎn)生的文檔和結(jié)論是完全可重復(fù)的,對(duì)于研究的科學(xué)性有貢獻(xiàn)。
6、資源豐富。對(duì)于使用者而言,R的開(kāi)放性使得其社區(qū)巨大,接近6000個(gè)擴(kuò)展包涵蓋了各種相關(guān)領(lǐng)域的方方面面。博客、文章、會(huì)議等等都很多。目前正有不少擴(kuò)展包作者在把優(yōu)秀的javascript library引入R,主要是數(shù)據(jù)可視化,繪制動(dòng)態(tài)、互動(dòng)、矢量數(shù)據(jù)圖像。對(duì)于開(kāi)發(fā)者而言,許多開(kāi)發(fā)方面的資源也可以使用,比如擴(kuò)展包的自動(dòng)化測(cè)試可以用 Travis CI 完成等等。對(duì)于一些高級(jí)使用者,同樣可以在R中通過(guò)Rcpp或Rcpp11擴(kuò)展包無(wú)縫調(diào)用C++的代碼(比如實(shí)現(xiàn)高性能算法、用C++里面的一些矩陣計(jì)算庫(kù)等等),也可以通過(guò)rJava調(diào)用Java代碼,通過(guò)rClr調(diào)用.NET代碼。
7、社區(qū)強(qiáng)大。整個(gè)社區(qū)仍然處于高速成長(zhǎng)當(dāng)中,在stackoverflow上的問(wèn)答活躍度也相當(dāng)高。
8、前沿。不少統(tǒng)計(jì)、計(jì)量等等新工具在學(xué)術(shù)界發(fā)表,作者本人或者團(tuán)隊(duì)會(huì)在第一時(shí)間、甚至文章發(fā)表前就發(fā)布基于這個(gè)文章的R擴(kuò)展包,使得其幾乎總是走在學(xué)術(shù)界前沿。
r語(yǔ)言和matlab區(qū)別總結(jié):
1.matlab的語(yǔ)法更適合于矩陣操作。R的矩陣操作就要稍弱一點(diǎn)了。R且更像一個(gè)語(yǔ)言,可以自己開(kāi)發(fā)很多東西。但是命令行界面,中文相關(guān)的教材極少。
? ? ? 2. R有大量的新的且高質(zhì)量的包可用。如果一個(gè)研究者提出了一個(gè)新算法,實(shí)現(xiàn)這個(gè)算法的R包很快就出來(lái)了。但是,matlab幾乎無(wú)這種可能。不過(guò),matlab提供了很多工具箱,是成熟的、組織良好的一些算法的實(shí)現(xiàn)。包和工具箱,就好比是零售和批發(fā)的關(guān)系。哪個(gè)更好,依人而論。
3.R是免費(fèi)的,輕量級(jí)的。matlab的很貴的,并且也是很笨重的。
4.在統(tǒng)計(jì)學(xué)方面,特別是在內(nèi)置函數(shù)數(shù)量和質(zhì)量以及處理大數(shù)據(jù)集的能力上,R要優(yōu)于matlab。5.R有CRAN,在這里幾乎可以找到所有需要的東西,包括最新的算法的實(shí)現(xiàn)和常用統(tǒng)計(jì)技術(shù)。matlab的論壇東西相對(duì)較少。6.matlab的文檔寫(xiě)的更好。7.matlab的UI比R更漂亮,不過(guò)Rstudio差不多彌補(bǔ)了R的這個(gè)不足。
8、MATLAB收費(fèi),不過(guò)國(guó)內(nèi)盜版也無(wú)所謂啦。有圖形界面,相關(guān)的教材也多,不過(guò)MATLAB是一種數(shù)學(xué)工具,除了統(tǒng)計(jì)學(xué)之外還有很多用處。光看統(tǒng)計(jì)學(xué)的話(huà),R更好 ,而且有很多最新的模型和檢驗(yàn)方法。但是非常難自學(xué),簡(jiǎn)而言之如果你英語(yǔ)用得不像母語(yǔ),還是用MATLAB或者SAS吧。
評(píng)論
查看更多