主要内容

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

関数定義

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

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

関数

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

トピック

コンパイル命令% # codegen

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

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

变长度输入宗量およびvarargoutのコードを生成します。

再帰関数のコード生成

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

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

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

無名関数のコード生成

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

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

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

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

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

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

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

外部関数

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

トラブルシューティング

对于ループ内の变长度输入宗量またはvarargoutのインデックスが一定でない

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

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

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

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

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

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

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