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