R 语言和 Matlab 相比各有啥优缺点( 二 )


如果要去选择的话,我觉得正确的思路是以知识本身为重点,有了这个知识之后,需要用哪种语言,就去学这种语言然后在这个语言里运用这个知识,需要用另一种语言,就去学另一种语言然后在那种语言里运用这个知识。“需要”有可能是老板要求,老师要求,某种语言有现成的解决方法等等等等。
一个不错的统计学家/经济学家/等应该是有了知识之后用哪种语言无所谓的。我是因为老板要求,外加总搞数据和统计,那就自然首选R了。Matlab大概搞自然科学会比较喜欢吧。


■网友
由于课程要求,两个都进行使用,但是Matlab用的更加熟练一些
我个人觉得除了价格区别外,以及 R 对统计人士比较友好外。
R 不如 Matlab。
尤其是在速度方面。
有 Mathworks 员工维护的软件质量真的是不一样。
首先我们可以看到 Matlab 官方提供的与 R 进行的对比(除了第一段假客气了一下,剩下文字的完全不虚的样子,正文开头就写着 How MATLAB Outpaces R)
MATLAB vs. R官方表明相对 R 主要优势是
A high-productivity development environment 高生产力开发环境Extensive toolboxes and apps 丰富的工具箱和应用程序Faster performance and easy deployment 更快的性能和实现The assurance of quality and reliability 更好的质量和可靠性对于我来说,我真是着实感受到了第三点,性能的差距!!!
例子如下:
Rstudio 我从未能够打开一个大于80MB的矩阵进行实施预览而不卡顿, Matlab 打开同样数据那个流畅性,让人感动!我不管跑教授(自己开发了多个R package)写的标版程序,还是自己调用 R 函数,调用不同package写的程序,可能是我R水平不够高,这些程序几乎从未让我 Mac 上的 CPU 占用率超过 100%(单个核心),而 Matlab,很多默认函数随随便就能让CPU 接近满负载运转 350% 到 400%(四个核心)。 那多核心电脑大部分情况下跑R 有什么优势啊!而官方文档里也明确对比了两者性能差距,差距是巨大的!
R 语言和 Matlab 相比各有啥优缺点

对于线性代数的运算,速度最快是 R的 420 倍!对于 clustering 聚类分析,最快能够达到 235 倍!如果说 Matlab 本来就是线性代数强者,和线性代数相关的对比是欺负 R 的话,那么普通程序对比,平均也快4倍,最快能够达到 28 倍。这相隔5年的CPU发展差距都没这么大吧。。。

大部分人都会觉得 Matlab 快,但是快这么多,可能超乎很多人的印象!

我个人选择是这样的:
搭神经网络: Python (Matlab 现在也有利用 cuda 的 deep learning toolbox,还没试过)
日常仿真,验证算法: Matlab
符号计算,毫无疑问选择 Mathematica。

■网友
好多回答都说Matlab收费 R语言免费的问题,我就纳闷了,不是大把的常春藤985么,大部分学校都跟Matlab有合作可以免费使用正版吧。。。只要用学校的邮箱作为账号注册一个Matlab账号就行了,很多人可能不知道自己的学校给自己安排了邮箱域名,一般是 学号@大学名称.http://edu.cn 或者之类的,用这个邮箱注册下就行,Matlab网站会检测到你学校的证书然后就可以免费使用正版了,然后的话R语言应该是偏向统计和数据分析的,Matlab偏向工程计算和仿真,有很多这方面的工具包,比如电力行业经常用的,最有名的Simulink仿真平台(比较偏向微网和电站、逆变器级的仿真),还有康奈尔大学开发的matpower开源电力潮流计算工具包,还有一些个人开发的PSAT(Power System Analysis Toolbox)、MatDyn之类的对大电网进行动态仿真的工具包,这些是R语言不具备的。考虑到数值计算和代数计算(微分方程和矩阵运算),Matlab无疑是优于R和Python这些的,因为它是基于C语言做了很多优化的,R和Python虽然也有C语言接口,但是从调用优化等方面弱于Matlab太多了,比如Python常用的矩阵运算工具包Numpy,从操作便捷度和速度上输给Matlab太多了,Matlab仅仅略弱于Fortran和基于此语言的PSCAD等


推荐阅读