Main Content

cell 配列のコード生成

cell 配列を含む MATLAB® コードからコードを生成すると、コード ジェネレーターは cell 配列を "同種" または "異種混合" として分類します。この分類により、生成されたコードにおける cell 配列の表現方法が決定されます。また、コードを生成する MATLAB コード内で cell 配列を使用する方法についても決定されます。

コード生成用に cell 配列を MATLAB コードで使用するときは、特定の制限に従わなければなりません。コード生成における cell 配列の制限事項を参照してください。

同種 cell 配列と異種混合 cell 配列

同種 cell 配列には以下の特性があります。

  • cell 配列は生成されたコード内で配列として表されます。

  • すべての要素のプロパティは同じになります。cell 配列に関連付けられている型は、個別の要素のプロパティではなく、すべての要素のプロパティを指定します。

  • cell 配列は可変サイズにすることができます。

  • 実行時に値が決定するインデックスを使用して cell 配列にインデックスを付けることができます。

異種混合 cell 配列には以下の特性があります。

  • cell 配列は生成されたコードで構造体として表されます。各要素は構造体のフィールドとして表されます。

  • 要素は異なるプロパティをもつことができます。cell 配列に関連付けられている型は、各要素のプロパティを個々に指定します。

  • cell 配列を可変サイズにすることはできません。

  • 定数のインデックスまたは定数境界をもつ for ループを使用して cell 配列にインデックスを付けなければなりません。

コード ジェネレーターはヒューリスティックな方法を使用して cell 配列が同種か異種混合かの分類を判別します。要素のプロパティ (クラス、サイズ、実数/複素数) や、プログラムにおける cell 配列の使用方法などのその他の要因が考慮されます。cell 配列の使用方法に応じて、コード ジェネレーターは cell 配列をあるケースでは同種、別のケースでは異種混合として分類することができます。たとえば、cell 配列 {1 [2 3]} について考えます。コード ジェネレーターはこの cell 配列を 1 行 2 列の異種混合 cell 配列として分類できます。最初の要素は double のスカラーです。2 番目の要素は 1 行 2 列の double の配列です。ただし、実行時に値が決定されるインデックスで cell 配列にインデックスを付ける場合、コード ジェネレーターはそれを同種 cell 配列として分類します。要素は上限が 2 の double の可変サイズの配列です。

cell 配列を同種にするか異種混合にするかの制御

特定の特性をもつ cell 配列では、同種または異種混合としての分類を制御することはできません。

  • 要素に異なるクラスがある場合、cell 配列は異種混合になります。

  • cell 配列が可変サイズの場合、同種になります。

  • 実行時に値が決定されるインデックスで cell 配列にインデックスを付ける場合、cell 配列は同種になります。

その他の cell 配列では、同種または異種混合としての分類を制御できます。

レポート内の cell 配列

cell 配列が同種か異種混合かを確認するには、MATLAB Function レポートの変数を表示します。

同種 cell 配列の場合、レポートにはすべての要素のプロパティを指定する 1 つのエントリがあります。表記法 {:} は、cell 配列のすべての要素が同じプロパティをもつことを示しています。

This image shows a homogenous cell array in a report. the notation {:} appears below the array c.

異種混合 cell 配列の場合、レポートには要素ごとに 1 つのエントリがあります。たとえば、2 つの要素をもつ異種混合 cell 配列 c では、c{1} のエントリに最初の要素のプロパティが示されます。c{2} のエントリに 2 番目の要素のプロパティが示されます。

This image shows a heterogeneous cell array in a report. {1} and {2} appear below the array c to indicate the different properties of each element.

参考

|

関連するトピック