Saltar al contenido

Compilador MATLAB vs Codificador MATLAB

Solución:

Compilador MATLAB cifra y archiva su código MATLAB (que permanece como MATLAB .m code) y lo empaqueta en un contenedor ejecutable delgado (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 en él como esencialmente una copia de MATLAB sin un escritorio de front-end.

Cuando el usuario ejecuta el ejecutable, desarchiva y descifra el código MATLAB y lo ejecuta en 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).

Codificador MATLAB convierte un subconjunto del lenguaje MATLAB en código C. Esto se puede usar de muchas maneras diferentes, incluido volver a traerlo a MATLAB como un archivo mex, compilarlo con un compilador de C para llamarlo desde otra aplicación o enviarlo a un dispositivo integrado. Dado que 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 MCR. El subconjunto admitido del lenguaje MATLAB es muy extenso, pero hay algunas restricciones notables que le gustarí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 utilizar un compilador C ++ en lugar de un compilador C.

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

Codificador MATLAB tiene otros casos de uso, como querer acelerar el código MATLAB mediante la conversión a un archivo mex o la necesidad de producir código C para otra aplicación o un dispositivo integrado.

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


Editar: La información anterior es correcta para las versiones de MATLAB R2014b e inferiores. A partir de MATLAB R2015a, la funcionalidad de Compilador MATLAB ha sido remezclado con la funcionalidad del Constructor de MATLAB productos, y también hay un nuevo producto SDK del compilador de MATLAB.

A partir de R2015a, Compilador MATLAB funciona de la misma manera que se describió anteriormente (es decir, cifrar, archivar y empaquetar, pero no producir C), pero ahora se empaquetará como .exe y como complemento de Excel (.xla). Antes de R2015a, esta funcionalidad solía estar presente en el producto MATLAB Builder EX para Excel.

A partir de R2015a, Compilador MATLAB ya no produce componentes .dll. Esta funcionalidad se ha trasladado al nuevo producto. SDK del compilador de MATLAB, que también incluye funcionalidad para producir ensamblados .NET y clases 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 e inferior, tuvimos:

Compilador MATLAB: produce componentes .exe y .dll

MATLAB Builder NE para .NET: producir 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

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

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


Editar: A partir de R2015b, SDK del compilador de MATLAB 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 la generación de código.

MATLAB Compiler SDK proporciona bibliotecas compartidas que se ejecutan en MATLAB Runtime (MCR). Es compatible con la mayoría de las funciones de MATLAB, incluidos los gráficos, y protege su propiedad intelectual cifrando 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 Answers 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 que admitan MATLAB (Windows, Mac, Linux), mientras que MATLAB Coder genera código C que puede ejecutarse en cualquier plataforma que admita código C.

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

También vale la pena señalar que el código C generado a partir 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *