struct
Strukturarray
Beschreibung
Ein Strukturarray ist ein Datentyp, der miteinander in Beziehung stehende Daten mit Datencontainern, die Felder genannt werden, gruppiert. Jedes Feld kann jeden beliebigen Datentyp enthalten. Greifen Sie auf Daten in einem Feld zu, indem Sie die Punktnotation in der Form structName.fieldName verwenden.
Erstellung
Wenn Sie Daten in eine neue Struktur eingeben müssen, erstellen Sie die Struktur mithilfe der Punktnotation, um ihre Felder nacheinander zu benennen:
s.a = 1;
s.b = {'A','B','C'}s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
Feldnamen können ASCII-Buchstaben (A–Z, a–z), Ziffern (0–9) und Unterstriche enthalten und müssen mit einem Buchstaben beginnen. Die maximale Länge eines Feldnamens ist namelengthmax.
Sie können ein Strukturarray auch mithilfe der Funktion struct, die im Folgenden beschrieben ist, erstellen. Sie können viele Felder gleichzeitig angeben oder ein nichtskalares Strukturarray erstellen.
Syntax
Beschreibung
s = struct erstellt eine Skalarstruktur (1x1) ohne Felder.
s = struct( erstellt ein Strukurarray mit dem angegebenen Feld und Wert. Das Eingabeargument field,value)value kann einen beliebigen Datentyp aufweisen, z. B. numerisch, logisch, Zeichen oder Zellenarray.
Wenn
valuekein Zellenarray ist oder wennvalueein skalares Zellenarray ist, dann istseine skalare Struktur. Beispielsweise erstellts = struct('a',[1 2 3])eine 1x1-Struktur, wobeis.a = [1 2 3].Wenn
valueein nichtskalares Zellenarray ist, dann istsein Strukturarray mit denselben Dimensionen wievalue. Jedes Element vonsenthält das entsprechende Element vonvalue. Beispielsweise gibts = struct('x',{'a','b'})s(1).x = 'a'unds(2).x = 'b'zurück.Wenn
valueein leeres Zellenarray{}ist, dann istseine leere Struktur (0x0).
s = struct(field1,value1,...,fieldN,valueN) erstellt ein Strukturarray mit mehreren Feldern.
Wenn keine der
value-Eingaben Zellenarrays sind oder wenn allevalue-Eingaben, die Zellenarrays sind, Skalare sind, dann istseine skalare Struktur.Wenn eine der
value-Eingaben ein nichtskalares Zellenarray ist, dann hatsdieselben Dimensionen wie dieses Zellenarray. Wenn zwei oder mehrvalue-Eingaben nichtskalare Zellenarrays sind, dann müssen alle dieselben Dimensionen aufweisen.Für jeden Wert (
value), der ein skalares Zellenarray oder ein Array eines anderen Datentyps ist, fügtstructdie Inhalte vonvaluein das relevante Feld für alle Elemente vonsein. Beispielsweise gibts = struct('x',{'a','b'},'y','c')s(1).x = 'a',s(2).x = 'b',s(1).y = 'c'unds(2).y = 'c'zurück.Wenn eine der
value-Eingaben ein leeres Zellenarray ist,{}, dann ist die Ausgabeseine leere Struktur (0x0). Wenn Sie ein leeres Feld angeben und die Werte anderer Felder beibehalten möchten, verwenden Sie stattdessen[]alsvalue-Eingabe.
s = struct([]) erstellt eine leere Struktur (0x0) ohne Felder.
s = struct( erstellt eine skalare Struktur mit Feldnamen und -werten, die den Eigenschaften von obj)obj entsprechen. Die Funktion struct konvertiert obj nicht, sondern erstellt stattdessen s als neue Struktur. Diese Struktur behält die Klasseninformation nicht bei, sodass private, geschützte und verborgene Eigenschaften in s zu öffentlichen Feldern werden. Die Funktion struct gibt eine Warnung aus, wenn Sie diese Syntax verwenden.
