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
