Struct-Arrays

Um komplexe Daten übersichtlicher zu strukturieren, ist es möglich Variablen zu so genannten Strukturen zusammen zu fassen:

Befehl Funktion
struktur = struct('name1',wert1,'name2',wert2) Erzeugen einer Struktur
struktur.name1 Zugriff auf Element name1 des Struct-Array mit dem Namen struktur

 


Eine Struktur wird mit dem Befehl struct( 'name1', wert1, 'name2', wert2, …) erzeugt. Hierbei wechseln sich Feldnamen und Feldwerte ab. Die Namen der Felder werden in Hochkommata (') geschrieben.

Hinweis: Zeichenketten als Werte müssen ebenfalls in Hochkommata (') geschrieben werden!

>>Student = struct('Vorname','Max','Nachname','Musterstudent','Matrikelnummer',
'1526356','Noten',[2 3 1 2])

Student = 
Vorname: 'Max'
Nachname: 'Musterstudent'
Matrikelnummer: '1526356'
Noten: [2 3 1 2]

 

Der Zugriff auf die Daten in den Feldern erfolgt durch Aufruf der Felder mit Hilfe eines Punktes als Separator.

>> Student.Noten

ans=
2 3 1 2

 

Ebenfalls ist es möglich, Strukturen weitere Felder mit einem Punkt (.) als Separator hinzuzufügen.

>> Student.Fachrichtung = 'Maschinenbau'

 

So ist es auch möglich, geschachtelte Strukturen einer schon bestehenden Struktur hinzuzufügen. Das bedeutet, dass man eine Struktur einer anderen Struktur anhängt.

>> Datum.Tag = 16;
>> Datum.Monat = 'Oktober';
>> Datum.Jahr = 1983;
>> Student.Geburtstag = Datum;

 

Will man einen zweiten Eintrag, benutzt man den Namen der bestehenden Struktur gefolgt von in Klammern stehendem Index der zuzufügenden Daten

>> Student(2).Vorname = 'Maxim';
>> Student(2).Nachname = 'Musterfrau';
>> Student(2).Matrikelnummer = '1245365';
>> Student(2).Noten = [3 2 4 2];
>> Student(2).Geburtstag.Tag = 23;
>> Student(2).Geburtstag.Monat = 'Januar';
>> Student(2).Geburtstag.Jahr = 1979;

 

Die Struktur Student ist nun eine vektorwertige Strukur, deren einzelne Elemente wie Vektoren behandelt werden können. Indizes, die auf die Strukturelemente verweisen, stehen unmittelbar nach dem Namen der Struktur

>> Student(2)

ans = 
Vorname: 'Maxim'
Nachname: 'Musterfrau'
Matrikelnummer: '1245365'
Noten: [3 2 4 2]
Geburtstag: [1x1 struct]


bzw. der Zugriff auf ein Element der Struktur:
>> Student(2).Geburtstag

ans = 
Tag: 23
Monat: 'Januar'
Jahr: 1979