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








評論