関数定義
固定小数点の高速化を目的とする MATLAB® 関数を作成する場合、特別な考慮事項があります。これには、varargin、varargout、再帰関数、無名関数、入れ子関数を使用する場合の特定の制約が含まれます。MATLAB の再帰関数のコードを生成するために、コード ジェネレーターはコンパイル時の再帰または実行時の再帰のいずれかを使用します。効率的な C/C++ コードを生成するために、コード ジェネレーターは、関数の特殊化と呼ばれる複数バージョンの関数を作成する場合があります。場合によっては、coder.ignoreConst (MATLAB Coder) を使用して、コード ジェネレーターで関数の特殊化が作成されないようにすることができます。MEX 関数の生成時に、MATLAB コードで特定の関数に対するコード生成を回避し、代わりに MATLAB エンジンを使用して呼び出しを実行できます。これを行うには、coder.extrinsic 構成要素を使用します。
関数
coder.extrinsic | 外部として関数を宣言し MATLAB で実行する |
coder.ignoreConst | 関数の特殊化の式における定数値の使用の防止 |
coder.mustBeConst | 値がコンパイル時の定数であることの検証 (R2023b 以降) |
coder.unroll | 各ループ反復でループ本体のコピーを作成することで、for ループを展開 |
coder.sameSizeBinaryOp | Apply element-wise binary operations without implicit expansion (R2021b 以降) |
coder.noImplicitExpansionInFunction | 生成コードの指定した関数内で暗黙的な拡張を無効化 (R2021b 以降) |
coder.read | 実行時に生成コードでデータ ファイルを読み取り (R2023a 以降) |
coder.write | 実行時に生成コードで読み取るデータ ファイルを作成 (R2023a 以降) |
トラブルシューティング
エラーの解決: 配列のサイズに互換性がない (MATLAB Coder)
コード生成中に発生したサイズ非互換性エラーをトラブルシューティングする。
エラーの解決: 左辺は固定サイズだが右辺は可変サイズ (MATLAB Coder)
可変サイズの配列を固定サイズの配列に代入すると発生するエラーをトラブルシューティングする。
エラーの解決: string でサポートされない coder.varsize (MATLAB Coder)
string 変数で coder.varsize を使用すると発生するコード生成エラーをトラブルシューティングする。
Resolve Error: coder.varsize Not Supported for Class Properties (MATLAB Coder)
Troubleshoot code generation error when using coder.varsize
with properties of a MATLAB class.
実行時にスカラーとして初期化される可変サイズの列配列の拡張 (MATLAB Coder)
Resolve Error: Incorrect Size for Expression (MATLAB Coder)
Troubleshoot MEX function error when the size of an array at run time is incompatible with the size of the array in the generated code.