ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

構造体配列内のデータへのアクセス

この例では、構造体配列を内容にアクセスする方法を示します。この例のコードを実行するには、S という名前のスカラー (1 行 1 列) 構造体に複数の変数を読み込みます。

S = load('clown.mat')

これで、ファイル (Xcaption および map) の変数は構造体のフィールドになります。

S = 
          X: [200x320 double]
        map: [81x3 double]
    caption: [2x1 char]

structName.fieldName の形式のドット表記を使用して、データにアクセスします。たとえば、フィールド X の数値データを関数 image へ渡します。

image(S.X)
colormap(S.map)

フィールドの部分にアクセスするために、フィールドのデータのサイズと型に合わせてインデックスを追加します。たとえば、X の左上隅を関数 image へ渡します。

upperLeft = S.X(1:50,1:80);
image(upperLeft);

特定のフィールドがセル配列を含んでいる場合は、データにアクセスするために、中かっこを使用します (たとえば、S.cellField{1:50,1:80})。

非スカラー構造体配列内のデータ

ファイル mandrill.mat から配列 S の 2 番目の要素内にデータを読み込んで、非スカラー配列を作成します。

 S(2) = load('mandrill.mat')

構造体配列の各要素には同じフィールドが必要です。clown.matmandrill.mat の両方とも、変数の Xmap、および caption を含みます。

S は 1 行 2 列の配列です。

S = 
1x2 struct array with fields:
    X
    map
    caption

非スカラー構造体の場合、特定のフィールドにアクセスするための構文は structName(indices).fieldName です。clown 構造体のインデックス (1) を指定して、clown のイメージを再表示します。

image(S(1).X)
colormap(S(1).map)

インデックスを追加して、フィールドの内容の左上隅を選択し、再表示します。

upperLeft = S(1).X(1:50,1:80);
image(upperLeft)

    メモ:   構造体配列の 1 つの要素を参照する場合にのみ、フィールドの部分にインデックスを付けることができます。MATLAB® では、構造体の複数の要素のフィールドにインデックスを付けようと試みるステートメント (たとえば、S(1:2).X(1:50,1:80) など) はサポートされません。

関連情報

この情報は役に立ちましたか?