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

expand all

Use coder.target to parameterize a MATLAB function

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

expand all

target — code generation targetstring

Code generation target specified as one of the following strings:

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

Data Types: char

Was this topic helpful?