このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
外部関数の宣言
coder.extrinsic(
は function
)function
を外部関数として宣言します。コード ジェネレーターは外部関数の本体のコードを生成せず、代わりに MATLAB® エンジンを使用して呼び出しを実行します。この機能は、実行時に MATLAB エンジンが使用可能な場合にのみ使用できます。MATLAB エンジンが使用可能な状況の例としては、MEX 関数の実行、Simulink® シミュレーション、またはコード生成時 ("コンパイル時" とも呼ばれる) の関数呼び出しが挙げられます。
スタンドアロン コードの生成中に、コード ジェネレーターは外部関数が呼び出し元の関数の出力に影響を与えるかどうか判断しようとします。たとえば、出力変数に mxArrays
を返すことによって、これを実行します。出力に変化がない場合、コード ジェネレーターはコード生成を進めますが、生成コードから外部関数を除外します。影響する場合、コンパイル エラーが発生します。
coder.extrinsic
を使用して外部関数として宣言した関数では、coder.ceval
を使用することはできません。
コード生成の範囲外では、関数 coder.extrinsic
は無視されます。
coder.extrinsic(function1, ... ,functionN)
は function1
から functionN
まで外部関数として宣言します。
coder.extrinsic(
は、'-sync:on'
, function1, ... ,functionN)functionN
を介した外部関数 function1
の呼び出しの前後で、MATLAB 関数と MEX 関数との間のグローバル データの同期を有効にします。少数の外部呼び出しのみがグローバル データを使用または変更する場合、グローバル同期モードを At MEX-function entry and exit
に設定してすべての外部関数呼び出しの前後で同期を無効にします。グローバル データを修正する外部呼び出しに対してのみ、'-sync:on'
オプションを使用して同期を有効にします。
グローバル データのためのコード生成 (MATLAB Coder)を参照してください。
coder.extrinsic(
は、'-sync:off'
, function1, ... ,functionN)functionN
を介した外部関数 function1
の呼び出しの前後で、MATLAB 関数と MEX 関数との間のグローバル データの同期を無効にします。少数の外部呼び出しを除き、ほとんどの外部呼び出しでグローバル データを使用または修正する場合、グローバル データを修正しない外部呼び出しに対しては、'-sync:off'
オプションを使用して同期を無効にします。
グローバル データのためのコード生成 (MATLAB Coder)を参照してください。
外部関数呼び出しには、パフォーマンスに影響する可能性のある何らかのオーバーヘッドがあります。外部関数呼び出しで渡される入力データは MATLAB に指定しなければなりません。これにはデータのコピー作成が必要になります。関数に出力データが含まれている場合、このデータは MEX 関数環境に再転送しなければなりません。これにもコピーが必要になります。
コード ジェネレーターは、coder.extrinsic
を使用したプライベート フォルダー内の関数の呼び出しをサポートしていません。
コード ジェネレーターは、coder.extrinsic
を使用したローカル関数の呼び出しをサポートしていません。