メインコンテンツ

可変サイズ データ

コード生成での定義と相違点

コード生成時、スカラー、ベクトル、行列などの配列について、コード ジェネレーターはそれらを固定サイズまたは可変サイズのいずれかとして識別します。

  • 配列のサイズを判別できない場合や配列のサイズが変わる場合、コード ジェネレーターは配列を可変サイズとして指定します。

  • 配列のサイズが変わらずにそのサイズを判別できる場合、コード ジェネレーターはその配列を固定サイズとして指定します。

固定サイズの配列と可変サイズの配列がコード ジェネレーターでどのように扱われるかを理解しておくと、コード生成時のエラーを診断して修正するのに役立ちます。アプリケーションに可変サイズの配列が必要ない場合は、可変サイズと動的メモリ割り当てを微調整して生成コードのパフォーマンスの改善を図ることもできます。

ブロック

MATLAB FunctionMATLAB コードを Simulink モデルに含める
MATLAB SystemSystem object をモデルに含める

関数

coder.areUnboundedVariableSizedArraysSupported現在のコンフィグレーション設定で非有界の可変サイズ配列が許可されているかどうかを確認する (R2024a 以降)
coder.varsizeサイズ非互換性エラーを解決して上限を宣言

可変サイズの基礎

可変サイズ配列のコード生成 (MATLAB Coder)

固定サイズ データと可変サイズ データがコード ジェネレーターでどのように定義されて扱われるかを学習する。

可変サイズの MATLAB Function ブロック変数の宣言

MATLAB Function ブロックで定義されている変数のサイズがシミュレーション中に変化することを許可する。

Unbounded Variable-Size Signals

Model unknown size data using dynamic arrays.

end + 1 のインデックス付けを使用して配列と cell 配列を拡張するためのコード生成 (MATLAB Coder)

MATLAB® コード内の配列と cell 配列を簡単な構文で拡張する。

可変サイズ配列の上限の指定 (MATLAB Coder)

動的メモリ割り当てを回避するために可変サイズ配列の上限を指定する。

コード生成時の可変サイズのサポートに関する MATLAB との非互換性 (MATLAB Coder)

可変サイズ データの結果として、生成されたコードの動作が MATLAB とどのように異なるかを理解する。

動的メモリ割り当て

MATLAB Function ブロックの可変サイズ配列での動的メモリ割り当ての使用

動的メモリ割り当てを使用する C/C++ コードを生成する。

MATLAB Function ブロック内の可変サイズ配列に対するメモリ割り当ての制御

MATLAB Function ブロックの動的メモリ割り当てを無効にする、または動的メモリ割り当てのしきい値を指定する。

トラブルシューティング

エラーの解決: 配列のサイズに互換性がない (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.

注目の例