Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

関数定義

コード生成での関数の定義と呼び出し

コード生成を目的とする MATLAB® 関数を作成する場合、特別な考慮事項があります。これには、vararginvarargout、再帰関数、無名関数、入れ子関数を使用する場合の特定の制約が含まれます。MATLAB の再帰関数のコードを生成するために、コード ジェネレーターはコンパイル時の再帰または実行時の再帰のいずれかを使用します。効率的な C/C++ コードを生成するために、コード ジェネレーターは、関数の特殊化と呼ばれる複数バージョンの関数を作成する場合があります。場合によっては、コード ジェネレーターで coder.ignoreConstcoder.ignoreSize を使用して、関数の特殊化が作成されないようにすることができます。MEX 関数の生成時に、MATLAB コードで特定の関数に対するコード生成を回避し、代わりに MATLAB エンジンを使用して呼び出しを実行できます。これを行うには、coder.extrinsic 構成を使用します。

関数

coder.extrinsic外部関数の宣言
coder.ignoreConst関数の特殊化の式における定数値の使用の防止
coder.ignoreSize定数サイズの式を対象とした関数の特殊化がコード ジェネレーターにより作成されるのを回避する

トピック

コンパイル命令 %#codegen

MATLAB 関数がコード生成用であることを示します。

可変長引数リストのコード生成

varargin および varargout のコードを生成します。

再帰関数のコード生成

コード生成用に MATLAB コードで再帰関数を使用します。

コード ジェネレーターで実行時の再帰を強制的に使用させる

コード ジェネレーターでコンパイル時の再帰ではなく実行時の再帰が使用されるように、MATLAB コードを書き換えます。

無名関数のコード生成

コード生成用に MATLAB コードで無名関数を使用します。

入れ子関数のコードの生成

コード生成用に MATLAB コードで入れ子関数を使用します。

コード生成における関数呼び出しの解決

コード ジェネレーターは優先順位ルールを使用して関数呼び出しを解決します。

コード生成パスでのファイル タイプの解決

コード ジェネレーターは優先順位ルールを使用してファイル タイプを解決します。

外部関数

コード生成でその関数がサポートされない場合は、関数を外部関数として宣言します。

トラブルシューティング

for ループ内の varargin または varargout のインデックスが一定でない

コード ジェネレーターが varargin または varargout のインデックスの値を特定できないときに、ループ展開を強制的に実行します。

生成されたコード内での重複関数の回避

生成されたコード内での重複関数の発生を軽減。

出力変数は実行時再帰の呼び出し前に割り当てなければならない

実行時再帰の出力変数の代入のトラブルシューティング。

コンパイル時の再帰限界値に達する

コンパイル時の再帰限界値エラーをトラブルシューティングします。