Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

coder.target

コード生成ターゲットが指定されたターゲットかどうかを判別

説明

コード生成ターゲットが target である場合に、tf = coder.target(target) は true (1) を返します。それ以外の場合は false (0) を返します。

MATLAB® クラス用のコードを生成すると、MATLAB はクラスを読み込むときにクラスの初期値を計算してから、コード生成を行います。coder.target を MATLAB クラス プロパティの初期化で使用する場合、coder.target('MATLAB') は true を返します。

すべて折りたたむ

MATLAB または生成コードで機能するように、MATLAB 関数をパラメーター化します。この関数は、MATLAB で実行されると MATLAB 関数 myabsval を呼び出します。ただし、生成コードは C ライブラリ関数 myabsval を呼び出します。

MATLAB 関数 myabsval を記述します。

function y = myabsval(u)   
%#codegen
y = abs(u);

入力パラメーターのサイズ、型および実数/複素数を指定するために、-args オプションを使用して myabsval の C スタティック ライブラリを生成します。

codegen -config:lib myabsval -args {0.0}
関数 codegen はライブラリ ファイル myabsval.lib およびヘッダー ファイル myabsval.h をフォルダー \codegen\lib\myabsval 内に作成します (ライブラリ ファイルの拡張子はプラットフォームによって異なります)。関数 myabsval_initialize と 関数 myabsval_terminate を同じフォルダー内に生成します。

coder.ceval を使用して生成された C ライブラリ関数を呼び出す MATLAB 関数を記述します。

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

MEX 関数 callmyabsval_mex を生成します。コマンド ラインで、生成されたライブラリ ファイルを指定します。

codegen -config:mex callmyabsval codegen\lib\myabsval\myabsval.lib -args {-2.75}

コマンド ラインでライブラリを指定する代わりに、coder.updateBuildInfo を使用して関数内でライブラリを指定できます。このオプションを使用してビルドを事前設定します。次の行を else ブロックに追加します。

coder.updateBuildInfo('addLinkObjects','myabsval.lib','$(START_DIR)\codegen\lib\myabsval',100,true,true);

メモ

START_DIR マクロは MATLAB Coder™ を使用したコードの生成に対してのみサポートされています。

ライブラリ関数 myabsval を呼び出す MEX 関数 callmyabsval_mex を実行します。

callmyabsval_mex(-2.75)
ans =

    2.7500

MATLAB 関数 callmyabsval を呼び出します。

callmyabsval(-2.75)
ans =

    2.7500
関数 callmyabsval は、MATLAB およびコード生成での実行について目的の動作を示します。

入力引数

すべて折りたたむ

文字ベクトルまたは string スカラーとして指定されるコード生成ターゲット。次のターゲットのいずれかを指定します。

'MATLAB'MATLAB での実行 (コードの生成ではない)

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

コード生成用のサポートされるターゲット言語

'MEX'MEX 関数の生成
'Sfun'Simulink® モデルのシミュレーション。アクセラレータ モードでの実行にも使用されます。
'Rtw'LIB、DLL または EXE ターゲットの生成。Simulink Coder およびラピッド アクセラレータ モードでの実行にも使用されます。
'HDL'HDL ターゲットの生成
'Custom'カスタム ターゲットの生成

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

例: tf = coder.target("MATLAB")

メモ

CUDA または SystemC のコード生成の場合、 coder.target('C++') は常に true です。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2011a で導入