Generating Code
C/C++ code generation is the core functionality of MATLAB®
Coder™. Generate code from the app, which you can open with coder
, or from the command line, by
using the codegen
function. The app provides
step-by-step guidance through the code generation process, including guidance for
best practices, and clear visual aids for the code generation settings and options.
The command line workflow enables simple, repeatable, and efficient initiation of
code generation. The code generation workflow supports many different data types,
including variable-size data and global data. The workflow also supports multiple
entry-point (top-level) functions, multisignature MEX (polymorphic MEX) function
generation, and customization of fundamental properties such as the array layout and
array indexing of the generated code. In addition, you can generate code that uses
key C++ language features such as classes, namespaces, and function
overloading.
Apps
Functions
Objects
Topics
Generating Code Basics
- Generate C/C++ Code From MATLAB Code Using MATLAB Coder
The MATLAB Coder code generation workflow. - C++ Code Generation
Understand code generation considerations specific to C++. - Generate C/C++ Code
Generate standalone C/C++ code or a C/C++ MEX function at the command line or by using the MATLAB Coder app. - Set Up a MATLAB Coder Project
Set up a project in the MATLAB Coder app.
Switch Between Command Line and Project Workflows
- Convert codegen Command to Equivalent MATLAB Coder Project
Use thecodegen
command with the-toproject
option. - Convert MATLAB Coder Project to MATLAB Script
Generate code at the command line by using project settings. - Share Build Configuration Settings
Export project settings to a code generation configuration object or import the settings into a project.
Data-specific Workflows
- Generate Code for Variable-Size Data
Generate code for data whose size might change at run time. - Generate Code for Global Data
Generate C/C++ code from MATLAB code that uses global data. - Generate Code for Enumerations
Generate code from MATLAB code that uses enumerations. - Generate Code That Preserves Entry-Point Input Data
Protect your input data from modification when generated code is called from your custom C/C++ code. (Since R2024b)
Extended Functionality
- Generate Code for Multiple Entry-Point Functions
Generate C/C++ code for multiple entry-point functions. - Generate Code for Functions with Multiple Signatures
Generate code for multiple signatures MEX (polymorphic MEX). - Code Generation for Entry-Point Functions in Namespaces
Understand code generation considerations specific to functions in MATLAB namespaces. - Pass an Entry-Point Function Output as an Input
Simplify input type specification for multiple entry-point functions. - Generate Code That Uses Row-Major Array Layout
Generate C/C++ code with row elements stored contiguously in memory. - Generate Code That Uses N-Dimensional Indexing
Preserve array dimensions in generated code. - Perform Data Read and Write Operations in Generated Code
Learn about file formats and functions that you can use with the generated code for data I/O.
Extended C++ Functionality
- Generate C++ Code with Class Interface
Generate C++ code that is packaged into a class. - Generate C++ Classes for MATLAB Classes
Generate a C++ class for a value class, handle class, or System object™ in your MATLAB code. - Use Dynamically Allocated C++ Arrays in Generated Function Interfaces
Understand and use dynamically allocated arrays from the generated C++ function interfaces. - Organize Generated C++ Code into Namespaces
Namespaces organize the generated code into logical parts and prevent name collisions.
Code Appearance
- Reserved Keywords
Certain words in your code, that are C/C++ keywords, might be renamed in the generated code.