Main Content

Definición de función

Defina y llame a funciones para generar código

Existen consideraciones especiales cuando se crean funciones de MATLAB® cuyo uso está destinado a un bloque MATLAB Function. Estas incluyen determinadas restricciones al utilizar varargin y varargout, funciones recursivas, funciones anónimas y funciones anidadas. Para generar código para las funciones recursivas de MATLAB, el generador de código utiliza recursividad en tiempo de compilación o recursividad en tiempo de ejecución. Para producir código C/C++ eficiente, el generador de código puede crear múltiples versiones de una función, denominadas especializaciones de la función. En algunos casos, puede evitar que el generador de código cree especializaciones de la función mediante coder.ignoreConst y coder.ignoreSize. Puede omitir la generación de código para una función específica en su código de MATLAB y utilizar, en su lugar, el motor de MATLAB para ejecutar una llamada. Para ello, utilice la construcción coder.extrinsic.

Bloques

MATLAB FunctionInclude MATLAB code in Simulink models
MATLAB SystemInclude System object in model

Funciones

coder.extrinsicDeclare function as extrinsic and execute it in MATLAB
coder.ignoreSizePrevent code generator from creating function specializations for constant-size expressions (desde R2019b)
coder.ignoreConstPrevent use of constant value of expression for function specializations
coder.mustBeConstValidate that value is a compile-time constant (desde R2023b)
coder.unrollUnroll for-loop by making a copy of the loop body for each loop iteration
coder.sameSizeBinaryOpApply element-wise binary operations without implicit expansion (desde R2021b)
coder.noImplicitExpansionInFunctionDisable implicit expansion within the specified function in the generated code (desde R2021b)
coder.readRead data files at run time in generated code (desde R2023a)
coder.writeCreate data files that the generated code reads at run time (desde R2023a)

Temas

Solución de problemas

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.

Resolve Error: Size Mismatches

Troubleshoot size mismatch errors that occur during code generation.