.NET加上MATLAB或R?

时间:2010-05-12 15:25:33

标签: .net r matlab interop

我正在用.NET编写一个程序,需要利用R或MATLAB的统计和数据分析功能。我已经使用过R,但我现在正在考虑转向MATLAB,因为它有一个.Net编译器,而R只能通过COM对象进行接口。任何人都可以推荐去哪儿?我知道MATLAB比R更昂贵(因为R是免费的),但我认为这可能转化为更容易的开发周期?

4 个答案:

答案 0 :(得分:3)

您已经描述了三种方法:使用.NET Builder for Matlab,使用Matlab作为COM对象,并使用R作为COM对象。每种成本都不同。

Matlab .NET Builder允许您创建.NET对象,然后可以直接从.NET调用它们。这样做的一个优点是,您可以通过在目标上安装可自由再分发的Mathworks MCR将这些对象部署到未安装Matlab的计算机上。这将花费您一个Matlab许可证加上Matlab .NET Builder的成本。在评论中,Sharpie引用了这种方法的总成本约为12.8万美元,Richie Cotton为MCR报价约为200 MB。

另一种方法是从您的.NET代码中将Matlab称为COM对象。这种方法有一些文档here。这对于一台机器来说更便宜,因为您不必购买.NET构建器。但是如果你想部署到许多目标上,你将不得不为每个目标购买Matlab(以及适用的工具箱),每台机器的成本约为2.8美元。

我从未使用过R,但看起来后一种方法,即将R作为COM对象调用,记录为here。当然,您只需将R部署到所有目标计算机上即可。

我猜最后两种方法同样困难很容易,所以如果您需要的例程可以使用任何一种语言,免费是一个非常好的价格。

答案 1 :(得分:2)

哪种方式取决于您要使用的统计程序。正如Sharpie所说,Matlab Stats工具箱并不像R + 2000软件包那样完整。 (虽然在Matlab中央文件交换中有相当数量的统计代码。)如果你发现自己必须在Matlab中编写低级别的统计程序,那么你选择了错误的选择。

Matlab-.NET界面很光滑,比R-.NET好一点,所以你可能会节省一些开发时间。事实上,我们目前的工作场所设置是R用于独立统计分析,而Matlab用于与.NET应用程序集成。

至于费用,如果您的雇主乐意为软件付费,请不要担心。如果您自己付钱,请选择R.:)

答案 2 :(得分:0)

如果您想从.NET调用R,请参阅R.NET from CodePlex,有关StackOverflow的更多意见,请参阅Call R (programming language) from .net

答案 3 :(得分:0)

https://github.com/BlueMountainCapital/FSharpRProvider

以下是如何使用F#和R无痕