2010-05-12 12 views
8

Estoy escribiendo un programa en .NET que necesitará utilizar las funciones estadísticas y de análisis de datos de R o MATLAB. He usado R pero ahora estoy pensando en mudarme a MATLAB ya que tiene un compilador .Net mientras que R solo puede interactuar a través de objetos COM. ¿Alguien puede recomendar ir de cualquier manera? Sé que MATLAB es infinitamente más caro que R (ya que R es gratis), pero creo que eso se puede traducir en un ciclo de desarrollo más fácil..NET junto con MATLAB o R?

+0

Si usted está vendiendo su software que necesita para asegurarse de que la licencia de GPL2 R es compatible con el software. –

Respuesta

3

Ha descrito tres enfoques: use .NET Builder para Matlab, use Matlab como objeto COM y use R como objeto COM. Los costos son diferentes para cada uno.

Matlab .NET Builder le permite crear objetos .NET, que luego puede llamar directamente desde .NET. Una ventaja de esto es que puede implementar esos objetos en máquinas que no tienen Matlab instalado al instalar el MCR de Mathworks libremente redistribuible en los objetivos. Esto le costará una licencia de Matlab más el costo de Matlab .NET Builder. En los comentarios, Sharpie cita un costo total de ~ $ 12.8K para este enfoque, y Richie Cotton cita ~ 200 MB para el MCR.

Otro enfoque es llamar a Matlab como un objeto COM desde su código .NET. Hay alguna documentación para este enfoque here. Esto es más barato para una máquina ya que no tiene que comprar el constructor de .NET. Pero si desea implementar muchos objetivos, tendrá que comprar Matlab (más cajas de herramientas aplicables) para cada uno, a un costo de ~ $ 2.8K/máquina.

Nunca he usado R, pero parece que el último acercamiento, de llamar a R como un objeto COM, está documentado here. Y, por supuesto, puedes simplemente implementar R en todas tus máquinas objetivo.

Supongo que los dos últimos enfoques son igualmente difícil fácil, así que si las rutinas que necesita están disponibles en cualquier idioma, gratis es un muy buen precio.

+2

Bastante buena comparación. La última vez que revisé, la opción de Matlab te costaría ~ 2k más 10k adicionales para el compilador y luego $ 800 para cada caja de herramientas de estadísticas. Sus aplicaciones necesitarían implementarse junto con una copia de la biblioteca Matlab Compiled Runtime (MCR). Con la ruta R, tendría que implementar R junto con la aplicación, que probablemente sea un poco más grande y más difícil de volver a empaquetar que la MCR. Pero es gratis. Además, opinión personal altamente sesgada: R borra el piso con la caja de herramientas estadísticas de Matlab. – Sharpie

+0

Oh, una cosa: parece que llamar a Matlab como un servidor ActiveX podría requerir la instalación de una copia de Matlab en cada máquina en la que se implemente la aplicación, es decir, ~ $ 2800 cada uno. – Sharpie

+0

@Sharpie: las aplicaciones creadas con el compilador de Matlab solo necesitan el MCR (esencialmente Matlab sin frontend), en lugar de una licencia completa de Matlab. Puede distribuir el MCR libremente con su aplicación. Sin embargo, agrega ~ 200Mb al tamaño de su programa. –

2

El camino a seguir depende de las rutinas estadísticas que desee utilizar. Como mencionó Sharpie, la caja de herramientas de Matlab Stats no es tan completa como los paquetes de R + 2000. (Aunque hay una buena cantidad de código de estadísticas en el Matlab Central File Exchange.) Si tiene que codificar rutinas de estadísticas de bajo nivel en Matlab, entonces ha escogido la opción incorrecta.

La interfaz Matlab-.NET es elegante, y un poco mejor que R-.NET, por lo que es probable que ahorre un poco de tiempo de desarrollo con ella. De hecho, nuestra configuración actual en el lugar de trabajo es R para análisis de estadísticas independientes, y Matlab para integración con aplicaciones .NET.

En cuanto al costo, si su empleador está dispuesto a pagar por el software, no se preocupe. Si está pagando usted mismo, vaya con R. :)

Cuestiones relacionadas