主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

结构体

説明

"構造体配列"は,”“フィールドと呼ばれるデータコンテナーを使って,関連するデータをグループ化するデータ型です。各フィールドには任意のデータ型を含めることができます。structName.fieldNameの形式のドット表記を使用して,フィールド内のデータにアクセスします。

作成

新しい構造体に入れるデータがある場合,ドット表記を使用して一度に1フィールドずつ名前を付けて構造体を作成します。

s.a. = 1;= {mit获得“一个”“B”“C”
s =结构体字段:a: 1 b: {' a ' ' b ' 'C'}

また,以下に説明するように関数结构体を使用して構造体配列を作成することもできます。多数のフィールドを同時に指定する,または非スカラー構造体配列を作成することができます。

説明

s =结构は,フィールドなしのスカラー(1行1列)構造体を作成します。

s =结构(价值は,指定したフィールドと値をもつ構造体配列を作成します。入力引数价值は,数値,論理値,文字,细胞配列などの任意のデータ型を使用できます。

  • 价值が”细胞配列ではない”場合,または价值がスカラー细胞配列である場合,年代はスカラー構造体です。たとえば,S = struct('a',[1 2 3])は1行1列の構造体を作成し,s = [1 2 3]となります。

  • 价值が非スカラー细胞配列の場合,年代价值と同じ次元の構造体配列です。年代の各要素は,対応する价值の要素を含みます。たとえば,s =结构(“x”,{' a ', ' b '})(1)。x = aおよび(2)。x = ' b 'を返します。

  • 价值が空の细胞配列{}である場合,年代は空(0行0列)の構造体です。

s =结构(field1, value1,…,fieldN家)は,複数のフィールドをもつ構造体配列を作成します。

  • 入力价值がいずれも细胞配列でない場合,あるいは细胞配列である入力价值のすべてがスカラーである場合,年代はスカラー構造体です。

  • 入力价值のいずれかが非スカラー细胞配列である場合,年代はその细胞配列と同じ次元をもちます。また2つ以上の入力价值が非スカラー细胞配列である場合,それらはすべて同じ次元でなければなりません。

    价值のいずれがスカラー细胞配列であるか,それ以外のデータ型の配列である場合,结构体年代のすべての要素に対して関連フィールド内の价值の内容を挿入します。たとえば,s =结构(“x”,{“a”、“b”},' y ', ' c ')(1)。x = a(2)。x = ' b '(1)。y = ' c ',および(2)。y = ' c 'を返します。

  • 入力价值のいずれかが空の细胞配列{}である場合,出的力年代は空(0行0列)の構造体です。空のフィールドを1つ指定して,その他のフィールドの値を維持するには,代わりに价值の入力に[]を使用します。

s =结构([])は,フィールドなしの空(0行0列)の構造体を作成します。

s =结构(objは,objのプロパティに対応するフィールド名と値をもつスカラー構造体を作成します。関数结构体は,objを変換するのではなく,新しい構造体として年代を作成します。この構造体はクラス情報を保持せず,プライベートプロパティ,保護プロパティおよび非表示プロパティは年代内のパブリックフィールドになります。この構文を使用すると,関数结构体が警告を発行します。

入力引数

すべて展開する

フィールド名。文字ベクトルまたは string スカラーとして指定します。有効なフィールド名は文字で始まり、文字、数字およびアンダースコアの組み合わせを使用できます。フィールド名の最大長は、関数namelengthmaxが返す値です。

値。任意の配列タイプとして指定します。入力价值のいずれかが非スカラー细胞配列の場合,すべての非スカラー细胞配列入力は同じ次元でなければなりません。

入力价值のいずれかが空の细胞配列{}である場合,出力は空の構造体配列です。単一の空のフィールドを指定するには,[]を使用します。

オブジェクト。スカラーまたはオブジェクトの配列として指定します。関数结构体は,objのプロパティを新しいスカラー構造体のフィールドにコピーします。

関数结构体は,ほとんどの基本データ型から構造体を作成しません。たとえば,objデータ型または字符データ型がある場合,结构体でエラーメッセージが発行されます。ただし,结构体は、表または时间表のプロパティを構造体として返します。基本データ型の一覧は,MATLABの基本クラスを参照してください。

すべて折りたたむ

関連するデータを構造体のフィールドに格納します。フィールドには,データの内容を表し,人間が読み取ることのできる名前を設定できます。

ドット表記を使ってフィールドを追加することで,構造体を作成します。フィールドには正弦波のx値とy値,およびデータを説明するテキストが格納されます。

数据。x = linspace(0, 2 *π);数据。y =罪(data.x);数据。title =“y = sin (x)”
data =结构体字段:y: [1x100 double] title: 'y = sin(X)'

正弦波をプロットします。フィールド名によって x 値と y 値の配列を参照することができます。その後、タイトルを追加します。

情节(data.x data.y)标题(data.title)

图中包含一个坐标轴。标题为y = sin(x)的轴包含一个类型为line的对象。

1つのフィールドをもつ非スカラー構造体を作成します。

场=“f”;值= {“一些文本”;(10年,20年,30);魔法(5)};s =结构(字段,值)
s =3×1带有字段的结构数组:f

各要素の内容を表示します。

顺丰速递
Ans = 'some text'
ans =1×310 20 30
ans =5×517 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

非スカラー構造体のフィールド(顺丰速递など)にアクセスすると,MATLAB®はコンマ区切りのリストを返します。この場合,顺丰速递(1)。f,(2)。f,年代(3).fと等価です。

複数のフィールドをもつ非スカラー構造体を作成します。

field1 =“f1”;value1 = 0 (10);field2 =“f2”;value2 = {“一个”“b”};field3 =‘f3’;Value3 = {pi, pi.^2};field4 =“f4”;value4 = {“四”};s =结构(field1 value1, field2, value2, field3, value3, field4, value4)
s =1×2带有字段的结构数组:F1 f2 f3 f4

value2およびvalue3の细胞配列が1行2列の場合,年代も1行2列になります。value1は细胞配列でなく数値配列であるため,(1) .f1(2) .f1の両方が同じコンテンツをもちます。同様に,value4の细胞配列は1つの要素をもつため,(1) .f4(2) .f4は同じコンテンツをもちます。

(1)
ans =结构体字段:F1: [0 0 0 0 0 0 0 0 0] f2: 'a' f3: 3.1416 f4: '第四'
(2)
ans =结构体字段:F1: [0 0 0 0 0 0 0 0 0] f2: 'b' f3: 9.8696 f4: '第四'

空のフィールドを1つもつ構造体を作成します。空のフィールドの値を指定するには[]を使用します。

s =结构(“f1”“一个”“f2”[])
s =结构体字段:F1: 'a' f2: []

细胞配列を含むフィールドをもつ構造体を作成します。

场=“mycell”;值= {{“一个”“b”“c”}};s =结构(字段,值)
s =结构体字段:Mycell: {'a' 'b' 'c'}

複数のフィールドをもつ空の構造体を作成します。

s =结构(“一个”{},“b”{},“c”{})
S = 0x0 null struct array with fields: a b c

空の構造体のフィールドに値を割り当てます。

(1)。一个=“一个”
s =结构体字段:A: ' A ' b: [] c: []

入れ子にされた構造体を作成します。ここで,一个は別の構造体を含むフィールドをもつ構造体です。

a.b =结构(“c”{},' d '{})
一个=结构体字段:b: [0 x0 struct]

a.bのフィールドの名前を表示します。

字段名(a.b)
ans =2 x1细胞{' c '} {' d '}

互換性についての考慮事項

すべて展開する

R2019aでの動作変更

拡張機能

R2006aより前に導入