Documentation

coder.target

Determine if code generation target is specified target

Syntax

Description

example

tf = coder.target(target) 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 coder.target in MATLAB class property initialization, coder.target('MATLAB') returns true.

Examples

collapse all

Parameterize a MATLAB function so that it works in MATLAB or 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 the C library for myabsval.m, using the -args option to specify the size, type, and complexity of the input parameter.

codegen -config:lib myabsval -args {0.0}
codegen creates the library myabsval.lib and header file myabsval.h in the folder /codegen/lib/myabsval. It also 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  %#codegen
y = -2.75;
% 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
  % 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

Convert callmyabsval.m to the MEX function callmyabsval_mex.

codegen -config:mex callmyabsval codegen/lib/myabsval/myabsval.lib...
     codegen/lib/myabsval/myabsval.h

Run the MATLAB function callmyabsval .

callmyabsval
ans =

    2.7500

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

callmyabsval_mex
ans =

    2.7500

Input Arguments

collapse all

Code generation target specified as one of the following values.

'MATLAB'Running in MATLAB (not generating code)
'MEX'Generating a MEX function
'Sfun'Simulating a Simulink® model
'Rtw'Generating a LIB, DLL, or EXE target
'HDL 'Generating an HDL target
'Custom'Generating a custom target

Example: tf = coder.target('MATLAB')

See Also

Introduced in R2011a

Was this topic helpful?