coder.target
コード生成ターゲットが指定されたターゲットかどうかを判別
説明
例
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);
ライブラリ関数 myabsval
を呼び出す MEX 関数 callmyabsval_mex
を実行します。
callmyabsval_mex(-2.75)
ans = 2.7500
MATLAB 関数 callmyabsval
を呼び出します。
callmyabsval(-2.75)
ans = 2.7500
callmyabsval
は、MATLAB およびコード生成での実行について目的の動作を示します。入力引数
文字ベクトルまたは string スカラーとして指定されるコード生成ターゲット。次のターゲットのいずれかを指定します。
'MATLAB' | MATLAB での実行 (コードの生成ではない) |
| コード生成用のサポートされるターゲット言語 |
'MEX' | MEX 関数の生成 |
'Sfun' | Simulink® モデルのシミュレーション。アクセラレータ モードでの実行にも使用されます。 |
'Rtw' | LIB、DLL または EXE ターゲットの生成。Simulink Coder™ およびラピッド アクセラレータ モードでの実行にも使用されます。 |
'HDL' | HDL ターゲットの生成 |
'Custom' | カスタム ターゲットの生成 |
例: tf = coder.target('MATLAB')
例: tf = coder.target("MATLAB")
メモ
CUDA
または High-Level Synthesis (HLS)
のコード生成の場合、 coder.target('C++')
は常に true
です。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
バージョン履歴
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.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)