最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
構造体配列
"構造体配列" は、"フィールド" と呼ばれるデータ コンテナーを使って、関連するデータをグループ化するデータ型です。各フィールドには任意のデータ型を含めることができます。structName.fieldName
の形式のドット表記を使用して、フィールド内のデータにアクセスします。
新しい構造体に入れるデータがある場合、ドット表記を使用して一度に 1 フィールドずつ名前を付けて構造体を作成します。
s.a = 1; s.b = {'A','B','C'}
s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
また、以下に説明するように関数 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
が警告を発行します。
cell2struct
| fieldnames
| isfield
| isstruct
| orderfields
| rmfield
| struct2cell
| struct2table
| substruct
| table
| table2struct