struct
構造体配列
説明
"構造体配列" は、"フィールド" と呼ばれるデータ コンテナーを使って、関連するデータをグループ化するデータ型です。各フィールドには任意のデータ型を含めることができます。structName.fieldName
の形式のドット表記を使用して、フィールド内のデータにアクセスします。
作成
新しい構造体に入れるデータがある場合、ドット表記を使用して一度に 1 フィールドずつ名前を付けて構造体を作成します。
s.a = 1; s.b = {'A','B','C'}
s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
フィールド名には、ASCII 文字 (A ~ Z、a ~ z)、数字 (0 ~ 9) およびアンダースコアを使用でき、文字で始める必要があります。フィールド名の最大長は namelengthmax
です。
また、以下に説明するように関数 struct
を使用して構造体配列を作成することもできます。多数のフィールドを同時に指定する、または非スカラー構造体配列を作成することができます。
構文
説明
s = struct
は、フィールドなしのスカラー (1 行 1 列) 構造体を作成します。
s = struct(
は、指定したフィールドと値をもつ構造体配列を作成します。入力引数 field
,value
)value
は、数値、論理値、文字、cell 配列などの任意のデータ型を使用できます。
value
が "cell 配列ではない" 場合、またはvalue
がスカラー cell 配列である場合、s
はスカラー構造体です。たとえば、s = struct('a',[1 2 3])
は 1 行 1 列の構造体を作成し、s.a = [1 2 3]
となります。value
が非スカラー cell 配列の場合、s
はvalue
と同じ次元の構造体配列です。s
の各要素は、対応するvalue
の要素を含みます。たとえば、s = struct('x',{'a','b'})
はs(1).x = 'a'
およびs(2).x = 'b'
を返します。value
が空の cell 配列{}
である場合、s
は空 (0 行 0 列) の構造体です。
s = struct(field1,value1,...,fieldN,valueN)
は、複数のフィールドをもつ構造体配列を作成します。
入力
value
がいずれも cell 配列でない場合、あるいは cell 配列である入力value
のすべてがスカラーである場合、s
はスカラー構造体です。入力
value
のいずれかが非スカラー cell 配列である場合、s
はその cell 配列と同じ次元をもちます。また、2 つ以上の入力value
が非スカラー cell 配列である場合、それらはすべて同じ次元でなければなりません。value
のいずれがスカラー cell 配列であるか、それ以外のデータ型の配列である場合、struct
はs
のすべての要素に対して関連フィールド内のvalue
の内容を挿入します。たとえば、s = struct('x',{'a','b'},'y','c')
はs(1).x = 'a'
、s(2).x = 'b'
、s(1).y = 'c'
、およびs(2).y = 'c'
を返します。入力
value
のいずれかが空の cell 配列{}
である場合、出力s
は空 (0 行 0 列) の構造体です。空のフィールドを 1 つ指定して、その他のフィールドの値を維持するには、代わりにvalue
の入力に[]
を使用します。
s = struct([])
は、フィールドなしの空 (0 行 0 列) の構造体を作成します。
s = struct(
は、obj
)obj
のプロパティに対応するフィールド名と値をもつスカラー構造体を作成します。関数 struct
は、obj
を変換するのではなく、新しい構造体として s
を作成します。この構造体はクラス情報を保持せず、プライベート プロパティ、保護プロパティおよび非表示プロパティは s
内のパブリック フィールドになります。この構文を使用すると、関数 struct
が警告を発行します。
入力引数
例
拡張機能
バージョン履歴
R2006a より前に導入参考
isfield
| table
| isstruct
| fieldnames
| orderfields
| rmfield
| substruct
| cell2struct
| struct2cell
| struct2table
| table2struct
| namelengthmax