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