このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
coder.extrinsic
外部として関数を宣言し MATLAB で実行する
構文
説明
coder.extrinsic(
は function
)function
を外部関数として宣言します。コード ジェネレーターは外部関数の本体のコードを生成せず、代わりに MATLAB® エンジンを使用して呼び出しを実行します。この機能は、実行時に MATLAB エンジンが使用可能な場合にのみ使用できます。MATLAB エンジンが使用可能な状況の例としては、MEX 関数の実行、Simulink® シミュレーション、およびコード生成時 (コンパイル時とも呼ばれる) の関数呼び出しが挙げられます。
スタンドアロン コードの生成中に、コード ジェネレーターは外部関数が呼び出し元の関数に影響を与えるかどうか判断しようとします。外部関数が呼び出し元の関数に影響しない場合 (たとえば、外部関数でプロットを表示する場合)、コード ジェネレーターではコード生成が続行されますが、外部関数は生成されたコードから除外されます。外部関数が呼び出し元の関数に影響を与える場合 (たとえば、外部関数が値を呼び出し元の関数に返す場合)、コード ジェネレーターはコンパイル エラーを出します。
コード生成の範囲外では、MATLAB は coder.extrinsic
命令を無視します。
MATLAB Function ブロックでの MATLAB エンジンを使用した関数呼び出しの実行を参照してください。
メモ
外部関数の実行時の出力は、mxArray
(別名 MATLAB 配列) です。mxArray
に対する有効な操作は、変数に保存すること、別の外部関数に渡すこと、MATLAB に返すことだけです。コードの式で使用するなど、mxArray
値に対して他の操作を実行するには、型が以前の代入によって既に定義されている変数に mxArray
を代入することで、mxArray
を既知の型に変換する必要があります。mxArrays の利用 (MATLAB Coder)を参照してください。
coder.extrinsic(function1,...,functionN)
は function1
から functionN
まで外部関数として宣言します。
coder.extrinsic(
は、外部関数呼び出しの前後における、MATLAB コードと生成された MEX ファイル間のグローバル データの同期を制御します。既定では、コード ジェネレーターは外部関数呼び出しの前後にグローバル変数を同期して、MATLAB コードと MEX 関数間の整合性を最大化します。この既定の動作を変更する方法およびタイミングの詳細については、グローバル データのためのコード生成 (MATLAB Coder)を参照してください。syn
, function1, ... ,functionN)
例
入力引数
制限
coder.extrinsic
(MATLAB Coder) を使用して外部関数として宣言した関数では、coder.ceval
を使用することはできません。コード ジェネレーターが渡したデータを外部関数にコピーしてデータを実行のために MATLAB に送るため、外部関数はパフォーマンスに影響を及ぼすことがあります。逆に、MATLAB は転送用の出力データを MEX 関数環境にコピーして戻します。
コード ジェネレーターは、
coder.extrinsic
を使用したプライベート フォルダー内の関数の呼び出しをサポートしていません。コード ジェネレーターは、
coder.extrinsic
を使用したローカル関数の呼び出しをサポートしていません。コード生成では、以下に該当するまたは以下が含まれている、外部関数に渡される値、外部関数から返される値はサポートされません。
ハンドル クラス
関数ハンドル
不透明な値 (
coder.opaque
(MATLAB Coder)coder.opaque
を参照)
ヒント
コード ジェネレーターでは、
plot
、disp
、figure
など、多くの MATLAB 可視化関数が外部関数として自動的に処理されます。coder.extrinsic
を使用してこれらの関数を外部関数として明示的に宣言する必要はありません。外部関数として宣言しなければならない関数を検出するには、関数
coder.screener
(MATLAB Coder) を使用します。この関数はコード生成の準備状態ツールを実行します。これにより、MATLAB コード内にコード生成でサポートされない機能や関数がないかどうかが調べられます。コード生成の準備状態ツールを使用したコードのチェックを参照してください。
拡張機能
バージョン履歴
R2011a で導入