Definizione della funzione
R2026aEsistono delle considerazioni particolari quando si creano funzioni di MATLAB® destinate ad essere utilizzate in un blocco MATLAB Function. Queste considerazioni particolari includono alcune restrizioni nell'utilizzo di varargin e varargout, delle funzioni ricorsive, delle funzioni anonime e delle funzioni annidate. Per generare codice per le funzioni ricorsive di MATLAB, il generatore di codice utilizza la ricorsione a tempo di compilazione o la ricorsione a tempo di esecuzione. Per produrre codice C/C++ efficiente, il generatore di codice crea talvolta più versioni di una funzione, chiamate specializzazioni della funzione. In alcuni casi, è possibile impedire al generatore di codice di creare le specializzazioni della funzione utilizzando coder.ignoreSize e coder.ignoreConst. È possibile escludere la generazione di codice per una funzione specifica nel codice MATLAB e utilizzare invece il motore di MATLAB per eseguire la chiamata. A tal fine, utilizzare il costrutto coder.extrinsic.
Blocchi
| MATLAB Function | Include MATLAB code in Simulink models | |
| MATLAB System | Include System object in model |
Funzioni
coder.extrinsic | Dichiarare la funzione come estrinseca ed eseguirla in MATLAB |
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 (Da 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 (Da R2023a) |
coder.write | Create data files that the generated code reads at run time (Da R2023a) |
Argomenti
- Direttiva di compilazione %#codegen
Indicare che una funzione di MATLAB è destinata alla generazione di codice.
- 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.
Risoluzione dei problemi
Resolve Error: Arrays Have Incompatible Sizes (MATLAB Coder)
Troubleshoot size incompatibility errors that occur during code generation.