您使用Matlab/F#/ R进行数据分析和建模算法的经验

Ben*_*jol 10 matlab f# r

我一直在使用F#一段时间来在用C++编码算法之前对算法进行建模,然后使用它来检查C++代码的结果,以及现实世界记录的数据.

对于事物的建模方面,它非常方便,但对于'数据混搭'类型的东西,从CSV和其他来源提取数据,生成统计数据,绘制图表等,我的同事取笑我("你为什么自己编码?它是内置于MatLab").

我还有另一位发誓R的同事,他也有"内置"图表.

我知道MatLab,R和F#没有严格的可比性,所以我不是要求'功能比较射击'.我只是想知道其他人正在使用这些分析前和分析后的场景,以及他们对它有多高兴.

(如果有人在那里努力将微软图表包装成F#友好的东西,请告诉我,我很乐意参与......)

(注意:这个问题的答案是主观的,但请根据经验)

Sha*_*ane 16

我对F#的经验很少,但对于C++/Matlab/R:如果程序执行速度最重要,请使用C++.如果实施速度是最重要的,请使用Matlab或R.这有很多原因,其中最重要的是其庞大的数学/统计软件包库.

Matlab和R都可以通过并行加速:所以一般来说,我认为实施的速度和质量应该是一个更大的问题.在应用程序的设计中,这就是编程的真正"价值".如果您可以在编写1个优秀的C++程序的同时编写3个或4个好的R程序,那么这不是一个小问题.

关于F#:只要它是微软框架的一部分,它必须提供很多东西.如果您正在使用Visual Studio进行开发或者使用大型.Net项目(例如),那么使用F#可能是有意义的.另一方面,您可以从.Net应用程序调用Matlab和R,因此我可能会认为他们的库应该是一个更大的问题.例如,请参阅本文作为RMatlab Builder 的示例.

长话短说:比较F#和Matlab/R不是一个很好的比较.F#是一种通用编程语言,而Matlab/R可以被视为大量的数学/数据分析工具包.有些人从F#调用Matlab或R来利用每种语言的好处(例如参见本讨论,本文关于Matlab/F#,或本文关于R/F#).

就图表而言:R在这方面非常强大.看一下CRAN的图形视图以及LearnR博客上关于Lattice和ggplot2的这一系列帖子.


Dan*_*lan 6

为了这些目的,我在matlab和python/pylab上做了一些工作.这些工具"内置"的是一个编程环境,一个shell和gui工具,用于快速查看来自各种来源的数据.

在一些命令中,您可以从拥有csv文件到屏幕上的交互式绘图,然后到几乎任何格式的图像导出.一旦掌握了它,从数据到可视化需要一两分钟.我认为这在C++世界中并不常见(虽然我看到一些教授的工作流程相当令人印象深刻).

我试过R,但我不能说它有用.它似乎提供了相同的功能集,但谷歌可能很难获得支持.

如果您花费超过几分钟的时间从数据到使用当前方法进行绘图,那么绝对值得学习其中一种环境.最佳选择取决于您的同事,工作环境,经验和预算.