coder.target
Determine if code generation target is specified target
Description
returns
true (1) if the code generation target is tf = coder.target(target)target.
Otherwise, it returns false (0).
If you generate code for MATLAB® classes, MATLAB computes
class initial values at class loading time before code generation.
If you use coder.target in MATLAB class
property initialization, coder.target('MATLAB') returns
true.
Examples
Parameterize a MATLAB function so that it works in MATLAB or in generated code. When the function runs in MATLAB, it calls the MATLAB function myabsval. The generated code, however, calls a
C library function myabsval.
Write a MATLAB function
myabsval.
function y = myabsval(u) %#codegen y = abs(u);
Generate a C static library for myabsval, using the
-args option to specify the size, type, and complexity of the input
parameter.
codegen -config:lib myabsval -args {0.0}
codegen function creates the library file
myabsval.lib and header file myabsval.h in the
folder \codegen\lib\myabsval. (The library file extension can change
depending on your platform.) It generates the functions
myabsval_initialize and myabsval_terminate in
the same folder.Write a MATLAB function to call the generated C library function using
coder.ceval.
function y = callmyabsval(y) %#codegen % Check the target. Do not use coder.ceval if callmyabsval is % executing in MATLAB if coder.target('MATLAB') % Executing in MATLAB, call function myabsval y = myabsval(y); else % add the required include statements to generated function code coder.updateBuildInfo('addIncludePaths','$(START_DIR)\codegen\lib\myabsval'); coder.cinclude('myabsval_initialize.h'); coder.cinclude('myabsval.h'); coder.cinclude('myabsval_terminate.h'); % Executing in the generated code. % Call the initialize function before calling the % C function for the first time coder.ceval('myabsval_initialize'); % Call the generated C library function myabsval y = coder.ceval('myabsval',y); % Call the terminate function after % calling the C function for the last time coder.ceval('myabsval_terminate'); end
Generate the MEX function callmyabsval_mex. Provide the
generated library file at the command line.
codegen -config:mex callmyabsval codegen\lib\myabsval\myabsval.lib -args {-2.75}
Rather than providing the library at the command line, you can use coder.updateBuildInfo to specify the
library within the function. Use this option to preconfigure the build. Add this line to
the else block:
coder.updateBuildInfo('addLinkObjects','myabsval.lib','$(START_DIR)\codegen\lib\myabsval',100,true,true);
Run the MEX function callmyabsval_mex which calls the library
function
myabsval.
callmyabsval_mex(-2.75)
ans =
2.7500Call the MATLAB function
callmyabsval.
callmyabsval(-2.75)
ans =
2.7500callmyabsval function exhibits the desired behavior for execution
in MATLAB and in code generation.Input Arguments
Code generation target, specified as a character vector or a string scalar. Specify one of these targets.
'MATLAB' | Running in MATLAB (not generating code) |
| Supported target languages for code generation |
'MEX' | Generating a MEX function |
'Sfun' | Simulating a Simulink® model. Also used for running in Accelerator mode. |
'Rtw' | Generating a LIB, DLL, or EXE target. Also used for running in Simulink Coder™ and Rapid Accelerator mode. |
'HDL' | Generating an HDL target |
'Custom' | Generating a custom target |
Example: tf = coder.target('MATLAB')
Example: tf = coder.target("MATLAB")
Note
In case of CUDA or High-Level Synthesis (HLS) code
generation, coder.target('C++') is always
true.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Version History
Introduced in R2011a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)