メインコンテンツ

可変サイズ データ

生成コードでサイズが変わる配列のコード生成

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

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

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

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

関数

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

可変サイズの基礎

Generate Code for Variable-Size Arrays

Learn how the code generator defines and handles fixed- and variable-size data.

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

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

Specify Upper Bounds for Variable-Size Arrays in Generated Code

To avoid dynamic memory allocation, specify upper bounds for variable-size arrays.

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

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

Generate Code for a MATLAB Function That Expands a Vector in a Loop

Generate C and C++ code for a function that uses variable-size data with and without dynamically allocated memory.

動的メモリ割り当て

Control Dynamic Memory Allocation in Generated Code

Balance memory usage and performance by controlling dynamic memory allocation for fixed- and variable-size arrays.

暗黙的な拡張を有効にしたコードの生成

暗黙的な拡張を達成するためにコード ジェネレーターで生成コードに変更が加えられます。

生成コードでの暗黙的な拡張の最適化

生成コードでの暗黙的な拡張は既定で有効になっています。

生成されたコード内の配列の表現

生成されたコード内で配列がどのように表現されるかを理解する。

生成される関数インターフェイスでの動的に割り当てられる C 配列の使用

生成される C 関数インターフェイスから動的に割り当てられる配列を理解して使用する。

生成された関数インターフェイスでの動的に割り当てられた C++ 配列の使用

生成された C++ 関数インターフェイスから動的に割り当てられた配列を理解して使用する。

トラブルシューティング

エラーの解決: 配列のサイズに互換性がない

コード生成中に発生したサイズ非互換性エラーをトラブルシューティングする。

エラーの解決: 左辺は固定サイズだが右辺は可変サイズ

可変サイズの配列を固定サイズの配列に代入すると発生するエラーをトラブルシューティングする。

エラーの解決: string でサポートされない coder.varsize

string 変数で coder.varsize を使用すると発生するコード生成エラーをトラブルシューティングする。

Resolve Error: coder.varsize Not Supported for Class Properties

Troubleshoot code generation error when using coder.varsize with properties of a MATLAB class.

実行時にスカラーとして初期化される可変サイズの列配列の拡張

Resolve Error: Incorrect Size for Expression

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.