r语言和matlab的区别是什么?

Python019

r语言和matlab的区别是什么?,第1张

R是免费的。R更像一个语言,可以自己开发很多东西。但是命令行界面,中文相关的教材极少。

MATLAB收费,不过国内盗版也无所谓啦。有图形界面,相关的教材也多,不过MATLAB是一种数学工具,除了统计学之外还有很多用处。

1.matlab的语法更适合于矩阵操作。R的矩阵操作就要稍弱一点了。

2.R有大量的新的且高质量的包可用。如果一个研究者提出了一个新算法,实现这个算法的R包很快就出来了。但是,matlab几乎无这种可能。不过,matlab提供了很多工具箱,是成熟的、组织良好的一些算法的实现。包和工具箱,就好比是零售和批发的关系。哪个更好,依人而论。

3.R是免费的,轻量级的。matlab的很贵的,并且也是很笨重的。

4.在统计学方面,特别是在内置函数数量和质量以及处理大数据集的能力上,R要优于matlab。

5.R有CRAN,在这里几乎可以找到所有需要的东西,包括最新的算法的实现和常用统计技术。matlab的论坛东西相对较少。

6.matlab的文档写的更好。

7.matlab的UI比R更漂亮,不过Rstudio差不多弥补了R的这个不足。

这是我在 Why R | learnR 中总结出的几点R的优势,其中一些可以认为是R对Matlab的优势:

免费。不需要任何授权费用,对于个人和企业来说在成本方面都有一定的吸引力。

开源。源代码的开放保证了你可以知道所有的细节,对于开发者和企业级应用是有价值的。

在统计、计量、数据挖掘、可视化群体中的流行度较高。这一点在国外可能更加成立,这就使得R成为了一个这类群体的大众语言,描述问题和交流起来非常方便。(Seven quick facts about R)

语言灵活度高。作为一个动态类型的语言,R语言的设计是比较良好的,对于元编程、函数式编程支持度也很好,使得语言具有非常强的灵活性,允许开发者对语言进行计算(computing on language),以及进行非标准计算(non-standard evaluation),使得语言灵活性和可操作性大大提升。

可重复。R+Markdown等等工具产生的文档和结论是完全可重复的,对于研究的科学性有贡献。

资源丰富。对于使用者而言,R的开放性使得其社区巨大,接近6000个扩展包涵盖了各种相关领域的方方面面。博客、文章、会议等等都很多。目前正有不少扩展包作者在把优秀的javascript library引入R,主要是数据可视化,绘制动态、互动、矢量数据图像。对于开发者而言,许多开发方面的资源也可以使用,比如扩展包的自动化测试可以用 Travis CI 完成等等。对于一些高级使用者,同样可以在R中通过Rcpp或Rcpp11扩展包无缝调用C++的代码(比如实现高性能算法、用C++里面的一些矩阵计算库等等),也可以通过rJava调用Java代码,通过rClr调用.NET代码...

社区强大。整个社区仍然处于高速成长当中,在stackoverflow上的问答活跃度也相当高。

前沿。不少统计、计量等等新工具在学术界发表,作者本人或者团队会在第一时间、甚至文章发表前就发布基于这个文章的R扩展包,使得其几乎总是走在学术界前沿。

首先,Matlab为收费软件价格不低,安装文件比较大。但是随着发展,以及R语言等免费软件的兴起,Matlab价格出现多个版本商业、教育、学生、个人版。学生版功能与商业版一致,但价格非常优惠了不到100美元。

R语言为开源免费软件,安装文件比较小,而且有着很多牛人为其提供工具包,发展迅速。在图像展现方面似乎以及高于Matlab。但是在稳定性方面我还没有发言权。

其次,Matlab以工程为主,军工、汽车、电信、金融等行业用于大量的用户群体,尤其在理工学校Matlab或许是必修之一,在金融工程的出现,就是将工程的方法用于金融,当然同时也将Matlab引入金融。

R 以统计为主,期初主要是统计相关专业的人使用,但后来逐渐广泛用于医学等领域,随着大数据的崛起,IT人员或许更多选择R语言,主要R语言更符合GNU标准,而且是开源软件并且免费。

所以,Matlab适合矩阵计算,数学运算方面专用,尤其是信号处理。而 R语言适合统计分析和绘图。也就是说,R语言做统计分析更给力,本人就是这样例子。