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.7500
Call the MATLAB function
callmyabsval
.
callmyabsval(-2.75)
ans = 2.7500
callmyabsval
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.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- 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)