Function Definition - MATLAB & Simulink (original) (raw)
Main Content
Defining and calling functions for code generation
There are special considerations when you create MATLABĀ® functions that are intended for code generation. These include certain restrictions when you use varargin
andvarargout
, recursive functions, anonymous functions, and nested functions. To generate code for MATLAB recursive functions, the code generator uses either compile-time recursion or run-time recursion. To produce efficient C/C++ code, the code generator sometimes creates multiple versions of a function, referred to as function specializations. In certain cases, you can prevent the code generator from creating function specializations by using coder.ignoreSize and coder.ignoreConst. While generating a MEX function, you can bypass code generation for a specific function in your MATLAB code and instead use the MATLAB engine to execute the call. To do this, use the coder.extrinsic construct.
Functions
Topics
- Compilation Directive %#codegen
Indicate that a MATLAB function is intended for code generation. - Generate Code With Implicit Expansion Enabled
The code generator introduces modifications in the generated code to accomplish implicit expansion. - Optimize Implicit Expansion in Generated Code
Implicit expansion in the generated code is enabled by default. - Code Generation for Variable Length Argument Lists
Generate code forvarargin
andvarargout
. - Generate Code for arguments Block That Validates Input and Output Arguments
Generate code for MATLAB code that constrains class, size, and other aspects of function input and output values. - 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. - Use MATLAB Engine to Execute a Function Call in Generated Code
If a function is not supported for code generation, declare it as_extrinsic_ to execute in MATLAB.