Function Definition

Define and call functions for code generation

Blocks

MATLAB FunctionInclude MATLAB code in models that generate embeddable C code
MATLAB SystemInclude System object in model

Functions

coder.extrinsicDeclare extrinsic functions
coder.ignoreSizePrevent code generator from creating function specializations for constant-size expressions
coder.ignoreConstPrevent use of constant value of expression for function specializations
coder.unrollUnroll for-loop by making a copy of the loop body for each loop iteration

Topics

Compilation Directive %#codegen

Indicate that a MATLAB® function is intended for code generation.

Code Generation for Variable Length Argument Lists

Generate code for varargin and varargout.

Code Generation for Recursive Functions

Use recursive functions in MATLAB code that is intended for code generation.

Force Code Generator to Use Run-Time Recursion

Rewrite your MATLAB code so that the code generator uses run-time recursion instead of compile-time recursion.

Code Generation for Anonymous Functions

Use anonymous functions in MATLAB code intended for code generation.

Code Generation for Nested Functions

Use nested functions in MATLAB code intended for code generation.

Resolution of Function Calls for Code Generation

The code generator uses precedence rules to resolve function calls.

Resolution of File Types on Code Generation Path

The code generator uses precedence rules to resolve file types.

Extrinsic Functions

Declare a function as extrinsic when code generation does not support that function.

Troubleshooting

Nonconstant Index into varargin or varargout in a for-Loop

Force loop unrolling when the code generator cannot determine the value of the index into varargin or varargout.

Avoid Duplicate Functions in Generated Code

Reduce the occurrence of duplicate functions in the generated code.

Output Variable Must Be Assigned Before Run-Time Recursive Call

Troubleshoot output variable assignment for run-time recursion.

Compile-Time Recursion Limit Reached

Troubleshoot compile-time recursion limit error.