Main Content

Determine if code generation target is specified target



tf = returns true (1) if the code generation target is 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 in MATLAB class property initialization,'MATLAB') returns true.


collapse all

Parametrize 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)   
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}
The 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)  
% Check the target. Do not use coder.ceval if callmyabsval is
% executing in MATLAB
  % Executing in MATLAB, call function myabsval
  y = myabsval(y);
  % add the required include statements to generated function code

  % Executing in the generated code. 
  % Call the initialize function before calling the 
  % C function for the first time

  % 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

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:



The START_DIR macro is only supported for generating code with MATLAB Coder™.

Run the MEX function callmyabsval_mex which calls the library function myabsval.

ans =


Call the MATLAB function callmyabsval.

ans =

The callmyabsval function exhibits the desired behavior for execution in MATLAB and in code generation.

Input Arguments

collapse all

Code generation target, specified as a character vector or a string scalar. Specify one of these targets.

'MATLAB'Running in MATLAB (not generating code)

'C', 'C++', 'CUDA', 'OpenCL' 'HLS', 'SystemVerilog', 'Verilog', 'VHDL'

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 ='MATLAB')

Example: tf ="MATLAB")


In case of CUDA or High-Level Synthesis (HLS) code generation,'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