2009-01-12 30 views
20

Después de echar un vistazo por Internet, parece que es posible interpolar entre C# y Matlab. Me pregunto si alguien ha tenido éxito y qué hicieron para hacerlo. Si es posible, de alguna manera, quitárselo sin el uso de COM. Gracias por tu tiempo.Interoperando entre Matlab y C#

Respuesta

10

Sí, muy posible. Aunque terminé usando la interfaz C y llamé a eso usando una DLL de modo mixto (y obteniendo C# para llamar a eso ... pero eso era porque también estaba interactuando con algún otro código C). Es bastante sencillo. En las computadoras donde desea ejecutar su programa, deberá instalar Matlab Runtime MCRInstaller.exe.

edición: eliminado enlace roto

0

Si usted está dispuesto a gastar dinero que esto puede ser lo que necesita:

http://www.mathworks.com/products/netbuilder/

Puede generar contenedores para Matlab código que le permiten ser llamado desde .NET y COM.

+0

Parece viable, pero soy un estudiante tacaño mezquino. – smaclell

+1

Pero ten cuidado. Ningún rapero que valga la pena le gustaría ser llamado de esta o de otra forma cuando está en medio de una canción. –

20

partir de la versión R2009a de MATLAB, objetos .NET se puede acceder desde MATLAB:

http://www.mathworks.com/help/techdoc/matlab_external/brpb5k6.html

En las versiones anteriores de MATLAB, es posible acceder a objetos .NET desde MATLAB usando CCW:

http://www.mathworks.com/support/solutions/data/1-5U8HND.html?solution=1-5U8HND

y el motor MATLAB de .NET:

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab_external/f135590.html#f135616

También puede utilizar MATLAB Builder NE para envolver el código m en ensamblajes .NET.

http://www.mathworks.com/products/netbuilder/

+0

De todas las opciones, esto es tanto lo último que probé, y lo que terminé haciendo. Desde la perspectiva de Mathworks, es el escenario más respaldado y documentado. Tenga en cuenta que las versiones de 32 bits o 64 bits de Matlab solo pueden alojar servidores COM en proceso de 32 o 64 bits, respectivamente. –

+3

El primer enlace está roto. –

3

Sí, me las arreglé para hacer eso y que estaba prácticamente indoloro.

Tendría que compilar su código MATLAB para .NET (como se explica en las respuestas anteriores), ejecutar el instalador MCR, referenciar MWArray.dll y el DLL de código compilado en su proyecto .NET y listo.

La única molestia fue el casting (y, a veces múltiples piezas fundidas!) Que las fuerzas de interfaz en usted (usando explícita en los operadores de conversión)

0

En el pre-lanzamiento R2009a puede llamar ensamblados .NET desde MATLAB.

0

No estoy seguro de cuánto se aplica a usted, pero intente buscar ejecutables de Matlab o MEX Básicamente, es muy fácil escribir un programa en C o FORTRAN, incluir algunas bibliotecas y funciones, y luego puede usarlo C o FORTRAN función en Matlab