当前位置:  开发笔记 > 编程语言 > 正文

R MAT不能做什么?

如何解决《RMAT不能做什么?》经验,为你挑选了9个好方法。

我经常听到有人抱怨MATLAB许可证有多贵.然后,我不知道为什么他们不只是用八度或[R .但后者是对的吗?你能用R代替MATLAB吗?



1> Shane..:

你能用R代替MATLAB吗?

是.

我使用MATLAB多年,但在过去的3年里主要转向R. 在这一点上,他们有更多的共同点.它部分取决于您的领域和用例.正如斯宾塞格雷夫斯先前所说,这也取决于你经常遇到的"教会".在您决定之前,最好先查看MATLAB工具包与CRAN的特定任务.

几年前和最近再一次在R-Help上提出了类似的问题. David Hiebeler(在缅因大学)保持了广泛的R/MATLAB比较,并且是该主题的最佳参考.您还可以查看此基本功能的比较.

以下是我过去观察过的一些事情,其中​​没有一个应该是破坏者.

通常,MATLAB具有更好的编程环境(例如更好的文档,更好的调试器,更好的对象浏览器)并且"更容易"使用(如果需要,可以使用MATLAB而无需进行任何编程). Simulink允许您通过连接图形中的块进行可视化编程. REvolution R通过提供更好的IDE以及改进的调试来解决其中的一些差异,但它仍然落后一步.

使用正常配置时,MATLAB的速度要快一些(参见此基准测试示例),但如果出现问题,可以采取一些措施来提高R性能.

由于它是商业性的,它也可以说有更多的"产品"(在集成附加组件的意义上)和支持(但你付出代价).查看产品列表.例如,它有像MATLAB编译器这样的东西,它可以创建可以部署的可执行MATLAB程序.

就包/工具包而言,MATLAB对物理科学有更多的支持,而R对统计学更强,这并不是说对方不能执行这些任务.它们都可以轻松扩展.

因此,如果易用性不是主要关注点(并且没有其他商业理由可以避免使用开源工具),那么我认为使用R有一个真实的案例.它有一个非常围绕它的强大社区(R邮件列表是惊人的),正在迅速发展(见CRAN),它是免费的(这不是一个小问题!).

编辑:我只想再补充一点:"使用R和MATLAB进行功能数据分析"一书中包含了"Matlab和R语言的基本比较"一章.这涵盖了一些重要的语法差异(例如点的解释,或方括号[]的含义).对于任何对函数式编程感兴趣的人(无论使用哪种语言),本书都非常值得一读.


我只想再补充一点:
RStudio是一个不错的新R IDE
有一个很好的matlab/R参考,显示了如何在每个中执行等效的任务:http://www.math.umaine.edu/~hiebeler/comp/matlabR.html
"[MATLAB]也可以说有更多的产品和支持".我不同意这一点.CRAN和Bioconductor(用于R)比MATLAB +工具箱+文件交换更全面.此外,根据我的经验,R-Help邮件列表通常与付费支持一样有效.我同意MATLAB编译器是一个很好的功能,不会在R中复制.
很多时候R函数比Matlab中的函数更好.我发现Matlab文档的质量在功能之间和(商业)工具箱之间变化很大.我同意Matlab IDE对初学者更友好,但是如果你每天都使用它,它不会比例如ESS更好*.

2> rcs..:

R是统计数据分析和图形的环境.MATLAB的起源是数值计算.如果您将它们用于数据操作(例如,矩阵/向量操作),则基本语言实现具有许多共同特征.

R在其他地方很难找到统计功能(在CRAN上有> 2000个包),许多统计人员都使用它.另一方面,MATLAB有许多(昂贵的)工具箱用于工程应用程序,如

图像处理/图像采集,

过滤器设计,

模糊逻辑/模糊控制,

偏微分方程,

等等


MATLAB也有类似于CRAN的东西:一个相当大的文件交换(http://www.mathworks.com/matlabcentral/fileexchange/),有超过10,000个用户提交的函数和工具箱,可以免费使用.
在MATLAB Central的文件交换之外,MATLAB还有一个相当大的免费代码库.

3> Sharpie..:

我使用R和MATLAB来解决问题并构建与环境工程相关的模型,并且两个系统之间存在很多重叠.在我看来,MATLAB的优势在于专门的特定领域应用程序.一些例子是:

流线型等功能有助于流体动力学研究.

工具箱,如图像处理工具集.我还没有找到一个R包,它提供了类似分水岭算法的工具的等效实现.

在我看来,MATLAB提供了更好的交互式图形功能.但是,我认为R会产生更好的静态打印质量图形,具体取决于应用程序.MATLAB的符号数学工具箱也比R等效项(例如Ryacas或rSymPy)更好地集成和更强大.MATLAB编译器的存在还允许基于MATLAB代码的系统独立于MATLAB环境进行部署 - 尽管它的可用性取决于您需要投入多少资金.

我应该注意的另一件事是MATLAB调试器是我使用过的最好的调试器之一.

我看到R的主要优点是系统的开放性和扩展的容易程度.这导致了CRAN上令人难以置信的多样化包.我知道Mathworks还维护着一个用户贡献工具箱的存储库,我无法进行公平的比较,因为我没有那么多地使用它.

R的开放性也扩展到编译代码中的链接.不久前我有一个用Fortran编写的模型,我试图决定使用R或MATLAB作为前端来帮助准备输入和处理结果.我花了一个小时阅读有关编译代码的MEX接口.当我发现我必须编写并维护一个单独的Fortran例程,为了管理接口而做了一些错综复杂的指针杂乱,我搁置了MATLAB.

R接口包括调用.Fortran([子程序名称],[参数列表]),并且更简单,更清晰.


我还应该提一下,R在我的书中为Sweave系统提供了一个很大的优势,可以实现可重复的研究.在我看来,允许任何人使用免费提供的工具重新运行和分析论文或报告背后的计算是非常重要的.

4> 小智..:

MATLAB优于R的一大优势是MATLAB文档的质量.作为开源的R在这方面受到了损害,这是许多开源项目的共同特征.

然而,R是一种非常有用的环境和语言.它广泛用于生物信息学社区,并且在该领域中有许多有用的包.

R的替代方案是Octave(http://www.gnu.org/software/octave/),它与MATLAB非常相似,它可以运行MATLAB脚本.


所有R提交的包都经过测试,以获取文档和示例.

5> robince..:

根据我的经验,从MATLAB迁移到Python是一个更容易的过渡 - 具有numpy/scipy的 Python 在风格和功能方面比R更接近MATLAB.还有开源直接MATLAB克隆Octave和Scilab.

毫无疑问,MATLAB可以做到R不能 - 在我的领域,MATLAB被大量用于实时数据采集 - 大多数硬件公司都包含MATLAB接口.虽然RI可能是可能的,但想象一下它会涉及更多.另外,Simulink提供了我认为缺少的整个功能区域.我确信还有更多功能,但我对R不太熟悉.



6> Will Roberts..:

简短回答:不,当然不是.虽然任何一套数学软件包都会有重叠,但它们总是会对某些问题域产生偏差.这些偏见强烈表明您是否要使用其中一个包.

MAT不能做的事情就是R不能与信号处理/采集和控制的实时硬件接口.MATLAB中的Simulink模型可以配置为在机器上进行模拟运行,然后编译代码以在真实系统上执行,将测量数据作为输入并计算适当的输出(在模拟控制系统之前,现在功能完全正常一).通过机器中相应的硬件板,您可以通过PC运行实时控制系统.

相比之下,R似乎牢牢地定位于统计学的角色,在那里我确信它胜过MATLAB可以做的事情.同样,Mathematica在符号数学方面优于MATLAB; Python在一般编程方面优于MATLAB; 在实际创建图形时,gnuplot比所有这些都好(呃,我假设); 等等.


实际上已知R非常适合创建图形.它们看起来也很好.实际上,我调查R的第一个原因是我嫉妒我的同事用R制作的一些漂亮的图表.所以我从gnuplot切换而且从未回头.

7> gappy..:

我同意上面给出的许多答案.由于答案特定于MATLAB和R功能的差异,我将提到一个非常重要的问题:MATLAB包含一个JVM,并且与Java具有完美且强大的互操作性.MATLAB用户可以访问Java的所有库.MATLAB IDE几乎可以用作穷人的Eclipse.相比之下,尽管rJava的创作者(Roman Francois)付出了非常宝贵的努力,但它仍然非常不成熟.



8> Nzbuu..:

我们不能,因为它是我们客户的期望/要求.


这是一个完全有效的答案.重要的是要意识到有许多行业根本不接受开源解决方案.采用板材的R有可疑的合规要求.
@smci这句话不再像2010年那样真实.R的使用激增.

9> 小智..:

使用sqldf软件包,R不仅能够进行统计,还能够进行严格的数据挖掘 - 假设您的计算机上有足够的RAM.

并且使用RServe包R成为常规的TCP/IP服务器; 所以你可以用java(或任何其他语言,如果你有api)调用R.R中还有一个包调用java out或R.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有