MATLAB® Coder™ generates C and C++ code from MATLAB code for a variety of hardware platforms, from desktop systems to embedded hardware. It supports most of the MATLAB language and a wide range of toolboxes. You can integrate the generated code into your projects as source code, static libraries, or dynamic libraries. The generated code is readable and portable. You can combine it with key parts of your existing C and C++ code and libraries. You can also package the generated code as a MEX-function for use in MATLAB.
When used with Embedded Coder®, MATLAB Coder provides code customizations, target-specific optimizations, code traceability, and software-in-the-loop (SIL) and processor-in-the-loop (PIL) verification.
To deploy MATLAB programs as standalone applications, use MATLAB Compiler™. To generate software components for integration with other programming languages, use MATLAB Compiler SDK™.
Learn the basics of MATLAB Coder
MATLAB language syntax and functions for code generation; data definition
C/C++ and MEX code generation, fixing errors, behavioral verification
Using and running the generated C/C++ code
Reduce code generation time, improve execution speed, reduce memory usage of generated code
Acceleration using generated MEX functions
Fixed-point conversion, single-precision conversion (requires Fixed-Point Designer™)
Generate C++ code for deep learning neural networks (requires Deep Learning Toolbox™)
Support for third-party hardware
Software is inherently complex and is not free of errors. The output of a code generator might contain bugs, some of which are not detected by a compiler. MathWorks reports critical known bugs brought to its attention on its Bug Report system at www.mathworks.com/support/bugreports/. In the search bar, type the phrase "Incorrect Code Generation" to obtain a report of known bugs that produce code that might compile and execute, but still produce wrong answers. To save a search, click Save Search.
The bug reports are an integral part of the documentation for each release. Examine periodically all bug reports for a release, as such reports may identify inconsistencies between the actual behavior of a release you are using and the behavior described in this documentation.
In addition to reviewing bug reports, you should implement a verification and validation strategy to identify potential bugs in your design, code, and tools.