2011-10-11 17 views
5

Necesito convertir algunos códigos de MATLAB a C++. Estoy usando Visual Studio 2010 y tengo el compilador MATLAB instalado. Me pregunto cómo hago para hacer esto.Conversión de Matlab a C++

También cuando publico mi proyecto ¿el usuario final tendrá que instalar algo por MATLAB? (Esto no puede ser el caso)

Respuesta

3

Puede compile Matlab scripts en ejecutables independientes, pero no estoy familiarizado con una herramienta de Matlab para convertir el código de Matlab en código de Visual C++. Usted puede convertir el código de Matlab a C o C++ usando Simulink Coder (anteriormente Real-Time Workshop), que está disponible en Mathworks como un producto separado.

Para ejecutar el ejecutable independiente, el usuario tendrá que instalar el Matlab Compiler Runtime. Desde el Matlab Compiler web page:

ejecutables y bibliotecas creadas con el producto MATLAB Compiler utilizar un motor de tiempo de ejecución llamado el MATLAB Compiler Runtime (MCR). El MCR se proporciona con el compilador MATLAB para su distribución con su aplicación y se puede implementar sin derechos de autor.

+0

Hace mucho, mucho tiempo, el compilador de MATLAB solía traducir el código de MATLAB a C, pero no lo ha hecho durante algún tiempo. Hoy en día, simplemente convierte los archivos fuente (* .m) de MATLAB en un formato ofuscado y pre-analizado (.p), empaquetado para que pueda ejecutarse como un ejecutable independiente o ser llamado desde otro programa. De cualquier forma, la máquina de destino en la que se ejecutará deberá tener instalada la MCR de la versión de MATLAB con la que se desarrolló la aplicación. –

+1

"pero no creo que haya una herramienta de Matlab para convertir el código de Matlab a código C++ o Visual C++" -Mis información: existe una herramienta Matlab y se llama taller en tiempo real. Sin embargo, este es un producto separado del compilador de Matlab y requiere una licencia diferente. – learnvst

+1

@learnvst - gracias por el comentario, actualicé la respuesta. – eykanal

0

Otra opción que tiene es usar el MATLAB Engine. Probablemente no sea una opción para aplicaciones en tiempo real, pero de lo contrario es realmente agradable. Básicamente, llama a las funciones de MATLAB desde C++. Las figuras (gráficos) se mostrarán como si estuvieras ejecutando MATLAB local. Cuando se inicia el programa, se crea una consola MATLAB.

2

No se librará de los tiempos de ejecución de Matlab. A menudo tuve problemas al usar Matlab Compiler. Básicamente es como un envoltorio alrededor del tiempo de ejecución de Matlab, genera un código torpe e introduce muchos problemas para la implementación. C alternativas ...? No pude encontrar ninguno. Así que recientemente cambié al ilnumerics, que es como Matlab en C#, solo que mucho más rápido y sin necesidad de traducción. funciona muy bien hasta ahora porque utilizamos ASP.NET de todos modos y por lo tanto saltamos saltando entre idiomas y podemos usar directamente los gráficos 3d de ilnumerics.