2011-08-12 11 views
8

Tenemos algunos investigadores que hacen un montón de trabajo en MATLAB. A menudo nos encantaría probar su código como parte de un flujo de trabajo mayor que requiere que los algoritmos se pongan en C/C++ o Python. He visto a MathWorks publicitar una herramienta para crear código C o C++ nativo. ¿Qué tan bueno es el código? ¿Admite las cajas de herramientas? Todavía lo veo como una herramienta de creación de prototipos temprana, pero me pregunto qué tan bueno es el código. ¿Pensamientos?¿Alguien usó la herramienta MATLAB para producir el código C/C++? ¿Es el código resultante viable para el uso de producción?

+1

Como cualquier otro generador de código automático - no es muy bueno, pero supongo que puede ser un buen punto de partida –

+0

Bueno, trabajé en una empresa que fabricaba vehículos no tripulados, y como recuerdo lo usaron para generar controles de vuelo . Sin embargo, no recuerdo específicamente si el código se usó en vehículos en ese momento, o solo en simuladores. Mi corazonada es que para algoritmos suficientemente complejos, especialmente aquellos que se están desarrollando activamente, sería mucho más probable que un humano cometa un error que el generador de códigos. En cuanto a las preguntas sobre si es bueno para el uso de la producción, diría que el lugar adecuado para preguntar es en la empresa que fabrica la herramienta. – shelleybutterfly

+2

Hay dos herramientas diferentes, la primera está disponible desde la última versión (R2011a) y genera C/C++ a partir del código ** MATLAB **. Las respuestas a continuación mencionan la generación de código de ** Simulink **. – Mikhail

Respuesta

3

He trabajado con mathworks extensamente en el pasado en esto. Las cajas de herramientas son caras, pero el soporte es sobresaliente. Analizamos el código generado para un DSP específico y estaba dentro del 10% de la velocidad del código generado a mano, y tardó una fracción del tiempo en generar. Mathworks ha estado invirtiendo mucho en estas cadenas de herramientas en los últimos años y se están volviendo muy buenos. Algunas cajas de herramientas son compatibles, mira los documentos en línea.

+0

gracias por la respuesta. Haré que los programadores de MATLAB revisen los documentos en línea para ver si las cajas de herramientas de procesamiento de imágenes y estadísticas son compatibles. Podemos exportar a Python muy rápidamente pero no obtenemos el mejor rendimiento.Es adecuado para algunos de nuestros trabajos de visión artificial, pero algunos necesitan del pétalo crudo para la potencia metálica de C++. Estamos portando el código a mano actualmente y ¡es un proceso costoso! –

+0

Otra posibilidad es usar una biblioteca/conjunto de herramientas de matriz de C++ de alto nivel como [Armadillo] (http://arma.sourceforge.net/) que tiene muchas [funciones] similares a Matlab (http: //arma.sourceforge. net/docs.html). – mtall

1

El código producido por Embedded Coder es, en mi opinión, muy bueno y es un producto ampliamente utilizado en la industria, especialmente en aplicaciones automotrices. Sin embargo, generalmente está diseñado para generar código de Simulink para aplicaciones en tiempo real. Mira las historias de los usuarios en el sitio web: http://www.mathworks.co.uk/products/embedded-coder/?s_cid=global_nav.

La compatibilidad con las cajas de herramientas depende de cuáles sean sus requisitos. Si necesita algo que solo utiliza bibliotecas estándar, entonces la asistencia es limitada, pero si eso no le importa, entonces puede tener más éxito.

Una palabra de advertencia: es caro.

+0

gracias por el comentario. Actualmente tenemos el paquete MATLAB, el procesador de imágenes Toolbox y el Statistic Toolbox. Hacemos prototipos rápidos y experimentamos con diferentes tecnologías de visión por computadora y luego el código se transporta a mano a C++. Esa codificación manual es un proceso muy costoso en horas hombre. Estoy viendo tres cosas: la calidad del código C++ de salida (es la calidad de producción con un rendimiento similar al código nativo de MATLAB), y admitirá las dos cajas de herramientas, y cuál es el TCO verdadero (costo total) en comparación con las horas estamos gastando portando manualmente a C++ o Python. –

Cuestiones relacionadas