Programming with MATLAB | ![]() ![]() |
入れ子型の構造体
構造体フィールドは、他の構造体や構造体からなる配列さえも含むことができます。構造体を作成したら、既存の構造体フィールド内に構造体を入れ子にするために関数struct
や直接代入ステートメントを使うことができます。
関数structを使って、入れ子構造体を作る
入れ子型の構造体を作るためには、関数struct
へのコールを入れ子にすることができます。たとえば、1行2列の構造体配列を作成します。
A = struct('data',[3 4 7; 8 0 1],'nest',... struct('testnum','Test 1', 'xdata',[4 2 8],... 'ydata',[7 1 6]))
A(1)は、structがコールするために希望する値をもちます。2番目の要素を配列に加えます。
A(2).data = [9 3 2; 7 6 5]; A(2).nest.testnum = 'Test 2'; A(2).nest.xdata = [3 4 2]; A(2).nest.ydata = [5 0 9];
入れ子型の構造体のインデックス
入れ子型の構造体にインデックスを付けるために、ドット表記を使って入れ子になったフィールド名を追加します。インデックス付きの式の最初のテキスト文字列は構造体配列を示し、続く式は他の構造体を含むフィールド名にアクセスします。
たとえば、以前に作成した配列A
は、2つのレベルの入れ子をもちます。
A(1)
内の入れ子型の構造体にアクセスするためには、A(1).nest
を使ってください。
A(2)
内の入れ子型の構造体のxdata
フィールドにアクセスするためには、A(2).nest.xdata
を使ってください。
A(1)
内のydata
フィールドの要素2にアクセスするためには、A(1).nest.ydata(2)
を使ってください。
![]() |
構造体配列内のデータの構造化 | セル配列 | ![]() |