Funktionsdefinition
R2026aBei der Erstellung von MATLAB®-Funktionen zur Verwendung in einem MATLAB Function-Block müssen mehrere Aspekte berücksichtigt werden. Hierzu gehören bestimmte Einschränkungen bei der Verwendung von varargin und varargout, rekursiver Funktionen, anonymer Funktionen und verschachtelter Funktionen. Um Code für rekursive MATLAB Funktionen zu generieren, verwendet der Code-Generator entweder Kompilierzeit- oder Laufzeit-Rekursion. Um effizienten C/C++ Code zu erzeugen, erstellt der Code-Generator manchmal mehrere Versionen einer Funktion, die als Funktionsspezialisierungen bezeichnet werden. In bestimmten Fällen können Sie den Code-Generator mithilfe von coder.ignoreSize und coder.ignoreConst daran hindern, Funktionsspezialisierungen zu erstellen. Sie können die Codegenerierung für eine bestimmte Funktion in Ihrem MATLAB-Code umgehen und stattdessen die MATLAB-Engine zur Ausführung des Funktionsaufrufs verwenden. Verwenden Sie hierfür das Konstrukt coder.extrinsic.
Blöcke
| MATLAB Function | Include MATLAB code in Simulink models | |
| MATLAB System | Include System object in model |
Funktionen
coder.extrinsic | Declare extrinsic function |
coder.ignoreSize | Prevent code generator from creating function specializations for constant-size expressions |
coder.ignoreConst | Prevent use of constant value of expression for function specializations |
coder.mustBeConst | Validate that value is a compile-time constant (Seit R2023b) |
coder.unroll | Unroll for-loop by making a copy of
the loop body for each loop iteration |
coder.sameSizeBinaryOp | Apply element-wise binary operations without implicit expansion |
coder.noImplicitExpansionInFunction | Disable implicit expansion within the specified function in the generated code |
coder.read | Read data files at run time in generated code (Seit R2023a) |
coder.write | Create data files that the generated code reads at run time (Seit R2023a) |
Themen
- Kompilierungsanweisung %#codegen
Geben Sie an, dass eine MATLAB-Funktion für die Codegenerierung vorgesehen ist.
- Effects of Implicit Expansion on Generated Code (MATLAB Coder)
Implicit expansion in the generated code can affect output sizes, code size, and performance.
- Control Implicit Expansion in Generated Code (MATLAB Coder)
Disable implicit expansion globally, for specific functions, or for specific operations.
Fehlersuche
Fehler beheben: Die Arrays weisen inkompatible Größen auf (MATLAB Coder)
Beheben von Fehlern aufgrund von Größeninkompatibilitäten, die bei der Codegenerierung auftreten