online complementos compiler matlab matlab-deployment matlab-compiler matlab-coder

complementos - Compilador MATLAB vs MATLAB Coder



matlab compiler online (3)

¿Cuál es la diferencia entre los dos?

Por lo que yo entiendo, el compilador MATLAB envuelve el código de MATLAB en un archivo .exe para que pueda ser utilizado sin instalar MATLAB, y solo requiere el MCR. Además de eso, MATLAB Builder NE también se puede usar para producir ensamblados .Net para usar con .Net Framework en lugar del archivo .exe, pero aún así requieren MCR.

¿Ahora no entiendo para qué utilizó MATLAB Coder? Genera código C / C ++. Pero, ¿el código de MATLAB se ha convertido realmente en C / C ++, o simplemente está empaquetado como en el caso del compilador MATLAB? ¿También necesita el MCR para ejecutarse?

Entiendo que esta no es exactamente una pregunta de programación. Pero he buscado en Internet y todavía no he encontrado una respuesta clara. Estos son productos muy caros, así que me gustaría saber en qué me estoy metiendo.


MATLAB Compiler SDK proporciona bibliotecas compartidas que se ejecutan en un MATLAB Runtime (MCR). Es compatible con la mayoría de las características de MATLAB, incluidos los gráficos, y protege su propiedad intelectual mediante el cifrado de su código MATLAB.

MATLAB Coder, por otro lado, proporciona código fuente legible y portátil. Es compatible con un subconjunto del lenguaje MATLAB centrado en algoritmos que realizan cálculos numéricos.

Este MATLAB respuestas entra en más detalles comparando estos dos enfoques:

http://www.mathworks.com/matlabcentral/answers/223937-should-i-use-matlab-compiler-sdk-or-matlab-coder-to-integrate-my-matlab-applications-with-cc

Por ejemplo, MATLAB Compiler SDK solo se puede implementar en plataformas compatibles con MATLAB (Windows, Mac, Linux) mientras que MATLAB Coder genera código C que se puede ejecutar en cualquier plataforma que admita el código C.

Además, el código empaquetado de MATLAB Compiler SDK se cifra para proteger IP, mientras que el código C generado de MATLAB Coder se puede proteger de la misma manera que el código C escrito a mano está protegido.

También vale la pena señalar que el código C generado de MATLAB Coder tiene el potencial de una ejecución más rápida, mientras que el código empaquetado de MATLAB Compiler SDK se ejecutará tan rápido como lo hace en MATLAB.


No soy un experto, pero se describe que el codificador genera código independiente C / C ++, sin mencionar el MCR. Sin embargo, noto que dice que solo admite un "subconjunto" del lenguaje Matlab, del que puedes leer más here . El compilador parece empaquetar el código de Matlab como sugirió, por lo que probablemente sea compatible con la mayoría de las funciones.


El compilador MATLAB cifra y archiva su código MATLAB (que permanece como el código .m MATLAB) y lo empaqueta en un envoltorio del ejecutable (ya sea .exe o .dll). Esto se entrega al usuario final junto con MATLAB Compiler Runtime (MCR). Si lo desea, el MCR también se puede empaquetar dentro del ejecutable.

El MCR se puede redistribuir libremente, y puede pensar que es esencialmente una copia de MATLAB sin una computadora de escritorio.

Cuando el usuario ejecuta el ejecutable, desarchiva y descifra el código MATLAB y lo ejecuta contra el MCR en lugar de MATLAB. Por lo tanto, las aplicaciones entregadas a través de este método deben ejecutarse exactamente igual que en MATLAB (incluida la misma velocidad).

MATLAB Coder convierte un subconjunto del lenguaje MATLAB en código C. Esto se puede usar de muchas maneras diferentes, incluyendo volver a MATLAB como un archivo mex, compilarse con un compilador de C para ser llamado desde otra aplicación o entregado en un dispositivo integrado. Como es código C en lugar de código MATLAB, a menudo (aunque no siempre) se ejecutará mucho más rápido que el código MATLAB original. El código C no requiere el MCR. El subconjunto soportado del lenguaje MATLAB es muy extenso, pero hay algunas restricciones notables que debería considerar antes de comprometerse con este flujo de trabajo. El código producido es código C, aunque puede producir un contenedor C ++ si necesita usar un compilador C ++ en lugar de un compilador C.

El compilador MATLAB está diseñado para el caso de uso en el que desea compartir de manera sencilla y (bastante) directa una aplicación MATLAB que ha escrito con alguien que no tiene una copia de MATLAB. Dado que el código .m implementado está encriptado, también se puede usar para compartir código MATLAB mientras se protege la propiedad intelectual.

MATLAB Coder tiene otros casos de uso, como querer acelerar el código MATLAB convirtiéndolo en un archivo mex, o necesitando producir código C para otra aplicación o dispositivo incorporado.

Si tiene preguntas más detalladas, realmente le recomendaría que simplemente llame a MathWorks y las pregunte.

Editar : la información anterior es correcta para las versiones de MATLAB R2014b y siguientes. A partir de MATLAB R2015a, la funcionalidad de MATLAB Compiler se ha remezclado con la funcionalidad de los productos MATLAB Builder , y también hay un nuevo producto MATLAB Compiler SDK .

A partir de R2015a, MATLAB Compiler funciona de la misma manera que la descrita anteriormente (es decir, cifra, archivo y paquete, pero no produce C), pero ahora se empaqueta como .exe y como un complemento de Excel (.xla). Antes de R2015a, esta funcionalidad solía estar presente en el producto MATLAB Builder EX for Excel .

A partir de R2015a, MATLAB Compiler ya no produce componentes .dll. Esta funcionalidad se ha trasladado al nuevo producto MATLAB Compiler SDK , que también incluye la funcionalidad para producir ensamblados .NET y clases de Java. Antes de R2015a, esta funcionalidad solía estar presente en los productos MATLAB Builder NE para .NET y MATLAB Builder JA para Java .

En otras palabras:

En R2014b y abajo, tuvimos:

Compilador MATLAB : produce componentes .exe y .dll

MATLAB Builder NE para .NET : produce ensamblados .NET

MATLAB Builder JA para Java : producir clases de Java

MATLAB Builder EX para Microsoft Excel : produce complementos de Excel.

En R2015a, tenemos:

Compilador MATLAB : produce complementos .exe y Excel

MATLAB Compiler SDK : produce ensamblados .dll, .NET y clases de Java.

El alcance y los casos de uso de MATLAB Coder no han cambiado en estas versiones (aunque hay nuevas funciones).

Editar : A partir de R2015b, MATLAB Compiler SDK también produce paquetes de Python.

Puede encontrar información adicional sobre cómo distinguir MATLAB Coder y MATLAB Compiler para C / C ++ aquí .

Tabla comparativa de diferentes productos MATLAB para generación de código .