Main Content

coder

Open MATLAB Coder app

Description

coder opens the MATLAB® Coder™ app. To create a project, on the Select Source Files page, provide the entry-point file names. The app creates a project with a default name that is the name of the first entry-point file. To open an existing project, on the app toolbar, click , and then click Open existing project.

If the Embedded Coder® product is installed, when the app creates a project, it enables Embedded Coder features. When Embedded Coder features are enabled, code generation requires an Embedded Coder license. To disable Embedded Coder features, in the project build settings, on the All Settings tab, under Advanced, set Use Embedded Coder features to No.

coder projectname opens the MATLAB Coder app using the existing project named projectname.prj.

example

coder -open projectname opens the MATLAB Coder app using the existing project named projectname.prj.

example

coder -build projectname builds the existing project named projectname.prj.

example

coder -new projectname opens the MATLAB Coder app creating a project named projectname.prj. If the Embedded Coder product is installed, the app creates the project with Embedded Coder features enabled. To disable these features, in the project build settings, on the All Settings tab, under Advanced, set Use Embedded Coder features to No.

coder -ecoder false -new projectname opens the MATLAB Coder app creating a project named projectname.prj. The app creates the project with Embedded Coder features disabled even if the Embedded Coder product is installed.

example

coder -tocode projectname -script scriptname converts the existing project named projectname.prj to the equivalent script of MATLAB commands. The script is named scriptname.

  • If scriptname exists, coder overwrites it.

  • The script reproduces the project build configuration in a configuration object and builds the project. The script:

    • Creates a configuration object named cfg.

    • Defines the variable ARGS for function input types.

    • Defines the variable GLOBALS for global data initial values.

    • Runs the codegen command. When you run the script, the entry-point functions that are arguments to codegen must be on the search path.

  • cfg, ARGS, and GLOBALS appear in the base workspace only after you run the script.

If the project includes automated fixed-point conversion, coder generates two scripts:

  • A script scriptname that contains the MATLAB commands to:

    • Create a code configuration object that has the same settings as the project.

    • Run the codegen command to convert the fixed-point MATLAB function to a fixed-point C function.

  • A script whose file name is a concatenation of the name specified by scriptname and the generated fixed-point file name suffix specified by the project file. If scriptname specifies a file extension, the script file name includes the file extension. For example, if scriptname is myscript.m and the suffix is the default value _fixpt, the script name is myscript_fixpt.m.

    This script contains the MATLAB commands to:

    • Create a floating-point to fixed-point conversion configuration object that has the same fixed-point conversion settings as the project.

    • Run the codegen command to convert the floating-point MATLAB function to a fixed-point MATLAB function.

For a project that includes fixed-point conversion, before converting the project to scripts, complete the Test Numerics step of the fixed-point conversion process.

coder -tocode projectname converts the existing project named projectname.prj to the equivalent script of MATLAB commands. It writes the script to the Command Window.

coder -toconfig projectname exports the code configuration settings stored in a MATLAB Coder project file to a code configuration object. Executing this command returns a code configuration object corresponding to projectname. For more information on which code configuration object is returned for different project file settings, see Share Build Configuration Settings.

example

cfg = coder('-toconfig','projectname') returns a configuration object that contains the code configuration settings stored in a MATLAB Coder project file. Executing this command returns a code configuration object cfg corresponding to projectname. For more information on which code configuration object is returned for different project file settings, see Share Build Configuration Settings.

coder -typeEditor opens an empty Coder Type Editor dialog. If a dialog is already open, this command brings it to the front of the screen.

See Create and Edit Input Types by Using the Coder Type Editor.

Examples

collapse all

Open the MATLAB Coder app using the existing MATLAB Coder project named my_coder_project.

coder -open my_coder_project

Build the MATLAB Coder project named my_coder_project.

coder -build my_coder_project

Open the MATLAB Coder app and create a project named my_coder_project.

coder -new my_coder_project

Convert the MATLAB Coder project named my_coder_project.prj to the MATLAB script named myscript.m.

coder -tocode my_coder_project -script my_script.m

Define a MATLAB function, myadd, that returns the sum of two values.

function y = myadd(u,v) %#codegen
y = u + v;
end

Create a MATLAB Coder project myadd.prj:

  • Open the MATLAB Coder app. Specify myadd as the entry point function.

  • On the Define Inputs Types page, specify u and v as double scalars.

  • On the Generate Code page, set Build Type to MEX. Leave other project file settings with their default values.

At the MATLAB command line, run this command:

cfg = coder('-toconfig','myadd.prj');

The code generator creates a coder.MexCodeConfig object cfg that contains the code configuration settings stored in myadd.prj.

Inspect the properties of cfg.

cfg = 

    Description: 'class MexCodeConfig: MEX configuration objects with C code.'
    Name: 'MexCodeConfig'

-------------------------------- Report -------------------------------

                      GenerateReport: true
                        LaunchReport: false
                   ReportInfoVarName: ''
          ReportPotentialDifferences: false

------------------------------- Debugging -----------------------------

                     EchoExpressions: true
                     EnableDebugging: false
                  EnableMexProfiling: false

---------------------------- Code Generation --------------------------

                      ConstantInputs: 'CheckValues'
                           EnableJIT: false
                 FilePartitionMethod: 'MapMFileToCFile'
                         GenCodeOnly: false
    HighlightPotentialRowMajorIssues: true
                  PostCodeGenCommand: ''
             PreserveArrayDimensions: false
                            RowMajor: false
                          TargetLang: 'C'

------------------------ Language And Semantics -----------------------

           CompileTimeRecursionLimit: 50
              ConstantFoldingTimeout: 40000
             DynamicMemoryAllocation: 'Threshold'
    DynamicMemoryAllocationThreshold: 65536
            EnableAutoExtrinsicCalls: true
              EnableRuntimeRecursion: true
                EnableVariableSizing: true
                      ExtrinsicCalls: true
                GlobalDataSyncMethod: 'SyncAlways'
               InitFltsAndDblsToZero: true
               PreserveVariableNames: 'None'
           SaturateOnIntegerOverflow: true

------------------------- C++ Language Features -----------------------

                        CppNamespace: ''

----------------- Safety (disable for faster execution) ---------------

                     IntegrityChecks: true
                ResponsivenessChecks: true

---------------- Function Inlining and Stack Allocation ---------------

                    InlineStackLimit: 4000
                     InlineThreshold: 10
                  InlineThresholdMax: 200
                       StackUsageMax: 200000

----------------------------- Optimizations ---------------------------

                        EnableMemcpy: true
                        EnableOpenMP: true
                     MemcpyThreshold: 64

------------------------------- Comments ------------------------------

                    GenerateComments: true
                MATLABSourceComments: false

------------------------------ Custom Code ----------------------------

                    CustomHeaderCode: ''
                       CustomInclude: ''
                   CustomInitializer: ''
                       CustomLibrary: ''
                        CustomSource: ''
                    CustomSourceCode: ''
                    CustomTerminator: ''
                   ReservedNameArray: ''

Input Arguments

collapse all

Name of MATLAB Coder project that you want to create, open, or build. The project name must not contain spaces.

Name of script that you want to create when using the -tocode option with the -script option. The script name must not contain spaces.

Output Arguments

collapse all

Code configuration object that contains the configuration settings stored in a MATLAB Coder project file.

Limitations

  • The coder function is not supported in MATLAB Online™.

Tips

  • If you are sharing an Embedded Coder license, use coder -ecoder false -new projectname to create a project that does not require this license. If the Embedded Coder product is installed, the app creates the project with Embedded Coder features disabled. When these features are disabled, code generation does not require an Embedded Coder license. To enable Embedded Coder features, in the project build settings, on the All Settings tab, under Advanced, set Use Embedded Coder features to Yes.

  • Creating a project or opening an existing project causes other MATLAB Coder or Fixed-Point Converter projects to close.

  • If your installation does not include the Embedded Coder product, the Embedded Coder settings do not show. However, values for these settings are saved in the project file. If you open the project in an installation that includes the Embedded Coder product, you see these settings.

  • A Fixed-Point Converter project opens in the Fixed-Point Converter app. To convert the project to a MATLAB Coder project, in the Fixed-Point Converter app:

    1. Click and select Reopen project as.

    2. Select MATLAB Coder.

Alternatives

  • On the Apps tab, in the Code Generation section, click MATLAB Coder.

  • Use the codegen function to generate code at the command line.

Introduced in R2011a