登录论坛

查看完整版本 : R不能做的MATLAB能做什么?


poster
2019-12-10, 16:49
我经常听到人们抱怨MATLAB (https://en.wikipedia.org/wiki/MATLAB)许可证的价格昂贵。然后我想知道为什么他们不只是使用Octave (https://www.gnu.org/software/octave/)或R。 (https://en.wikipedia.org/wiki/R_%28programming_language%29)但是后者对吗?可以使用R取代MATLAB吗?


回答:
可以使用R取代MATLAB吗?

是。

我使用MATLAB已有多年,但最近3年主要切换到R。在这一点上,它们有很多共同点。这部分取决于您的领域和用例。正如斯宾塞·格雷夫斯 (http://old.nabble.com/Comparison-between-R-and-MATLAB-td18000568.html) ( Spencer Graves)先前所说 (http://old.nabble.com/Comparison-between-R-and-MATLAB-td18000568.html) ,这还取决于您“碰巧经常去哪个教堂”。最好在决定之前查看MATLAB工具箱 (http://www.mathworks.com/products/product_listing/index.html)和CRAN (http://cran.r-project.org/)的特定任务。

几年前 (http://tolstoy.newcastle.edu.au/R/help/04/04/1284.html) , 最近又 (http://old.nabble.com/Comparison-between-R-and-MATLAB-td18000568.html) 在R-Help上问了 (http://tolstoy.newcastle.edu.au/R/help/04/04/1284.html)一个类似的问题。 David Hiebeler (http://www.math.umaine.edu/~hiebeler/home.html) (缅因大学)保持了广泛的R / MATLAB比较 (http://www.math.umaine.edu/~hiebeler/comp/matlabR.html) ,并且是该主题的最佳参考。您还可以查看基本功能的比较 (http://home.online.no/~pjacklam/r/doc/matlab_vs_r.html) 。

这是我过去观察到的一些事情,都不应该成为破坏交易的事情。


通常,MATLAB具有更好的编程环境(例如,更好的文档,更好的调试器,更好的对象浏览器),并且使用起来更加“轻松”(如果需要,您可以不进行任何编程就使用MATLAB)。 Simulink (http://en.wikipedia.org/wiki/Simulink)允许您通过连接图形中的块来直观地进行编程。 REvolution R (http://www.revolution-computing.com/)通过提供具有改进的调试功能的更好的IDE 来解决其中的一些差异 (http://www.revolution-computing.com/) ,但它仍然落后了一步。
正常配置下,MATLAB的运行速度要快一些( 请参见此基准示例 (http://mlg.eng.cam.ac.uk/dave/rmbenchmark.php) ),尽管如果有问题可以采取一些措施来提高R性能。
由于它是商业产品,因此可以说它还有更多的“产品”(在集成附件的意义上)和支持(但您为此付费)。请参阅产品列表 (http://www.mathworks.com/products/product_listing/index.html) 。例如,它具有诸如MATLAB编译器之类的功能 (http://www.mathworks.com/products/compiler/) ,可创建可部署的可执行MATLAB程序。
就包/工具包而言,MATLAB对物理科学提供了更多支持,而R在统计方面更强大,这并不是说其他人不能执行这些任务。而且它们都可以轻松扩展。
因此,如果易用性不是主要考虑因素(并且没有其他商业理由要避免使用开源工具),那么我认为使用R确实是有道理的。它周围的强大社区(R邮件列表很棒),正在迅速发展(请参阅CRAN),并且它是免费的 (这不是一个小问题!)。

编辑:我要再补充一点: “使用R和MATLAB进行功能数据分析”一书 (http://www.springer.com/statistics/computational/book/978-0-387-98184-0)包括了“ Matlab和R语言的本质比较” (http://www.springer.com/statistics/computational/book/978-0-387-98184-0)一章。这涵盖了一些重要的语法差异(例如,点的解释或方括号[]的含义)。对于那些对函数式编程感兴趣的人(用任何一种语言),这本书本身都是值得阅读的。



更多&回答... (https://stackoverflow.com/questions/1738087)