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?
Respuesta
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.
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! –
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
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.
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. –
- 1. Una herramienta para convertir el código de MATLAB a Python
- 2. ¿DxScene es el "WPF para Delphi"? ¿Alguien lo usó?
- 3. herramienta para explicar el código C
- 4. Herramienta para encontrar el código VHDL comentado
- 5. herramienta para formatear automáticamente el código R
- 6. herramienta para ver el código generado por el compilador
- 7. Herramienta de Java para modificar el código de prueba
- 8. ¿LINQ-to-NHibernate está listo para el código de producción?
- 9. Herramienta de fusión para el código de C#
- 10. System.Diagnostics.Debug.WriteLine en el código de producción
- 11. Uso de la herramienta de cobertura de código Python para comprender y reducir el código fuente de una biblioteca grande
- 12. El uso de LaTeX Beamer para visualizar el código
- 13. ¿Alguna herramienta para verificar el código duplicado de VB.NET?
- 14. ¿Herramienta para visualizar el flujo de código en Java?
- 15. ¿Hay alguna herramienta para reformatear el código de C#?
- 16. Herramienta para visualizar el flujo de código (C/C++)
- 17. Uso de TDD para expulsar el código seguro para subprocesos
- 18. Secuencia en el código de producción
- 19. ¿Cuál es el código de tecla para "$"?
- 20. ¿Hay alguna herramienta para comentar el código de JavaScript?
- 21. ¿NHibernate SchemaUpdate es seguro en el código de producción?
- 22. ¿Qué es el "código de nivel de producción"?
- 23. ¿Alguien alguna vez usó el molde de PHP (unset)?
- 24. ¿Alguna herramienta para detectar errores tontos en el código C?
- 25. convirtiendo el código de MATLAB en Fortran
- 26. obtener el código de funciones en Matlab?
- 27. ¿Hay alguna herramienta para ordenar automáticamente el código F #
- 28. Uso de una DSL para generar el código de C#
- 29. ¿Qué herramienta existe para compilar el código de C++ 2011 para el destino de Windows?
- 30. ¿Implementar el código de matlab en C++?
Como cualquier otro generador de código automático - no es muy bueno, pero supongo que puede ser un buen punto de partida –
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
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