Mo Logo [Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen]

Mathematik-Online-Lexikon:

Strukturen


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Übersicht

Definition und Erweiterung einer Struktur mit automatischem Auffüllen:
  >> S=struct('Name','Belinda Beispiel','Matrikelnr',1234567,...
              'Noten',[1.3 1.0 1.7])
  S =
            Name: 'Belinda Beispiel'
      Matrikelnr: 1234567
           Noten: [1.3000 1 1.7000]
  >> S(3).Name='Emil Exempel'; S(3).Matrikelnr=7654321
  S =
  1x3 struct array with fields:
      Name
      Matrikelnr
      Noten

Indizierung von Elementen und Feldern:

  >> S(3)
  ans =
            Name: 'Emil Exempel'
      Matrikelnr: 7654321
           Noten: []
  >> S(2)
  ans =
            Name: []
      Matrikelnr: []
           Noten: []
  >> S(2).Matrikelnr=1223334;
  >> S([1 3])
  ans =
  1x2 struct array with fields:
      Name
      Matrikelnr
      Noten
  >> S([1 3]).Name
  ans =
  Belinda Beispiel
  ans =
  Emil Exempel
Man beachte, dass bei der letzten Indizierung zwei Rückgabewerte entstehen. Diese werden sukzessive der Standardvariablen ans zugewiesen, weshalb diese nur noch den letzten Wert 'Emil Exempel' enthält.

Zuweisung mehrerer Rückgabewerte:

  >> [S.Matrikelnr]
  ans =
       1234567     1223334     7654321
  >> {S.Name}
  ans =
      'Belinda Beispiel'     []    'Emil Exempel'
  >> [N1,N2,N3]=S.Name
  N1 =
  Belinda Beispiel
  N2 =
       []
  N3 =
  Emil Exempel
Sofern die Inhalte eines Feldes Matrizen gleicher Größe sind, können diese wie in der ersten Befehlszeile gezeigt, durch Klammerung mit [ ] zu einer Matrix zusammengefasst werden. Bei Feldinhalten unterschiedlichen Datentyps können mehrere Rückgabewerte stets durch Klammerung mit { } zu einer Cell zusammengefasst werden.

Ebenso möglich sind Zuweisungen auf mehrere Variablennamen. Diese sind auf der linken Seite einer Anweisung durch [ ] geklammert anzugeben. Die Zahl der Variablen muss dabei mit der Anzahl der Rückgabewerte der rechten Seite übereinstimmen.

Sortieren und Löschen von Feldern:

  >> S(2).Fach='Mathematik';
  >> S(1)
  ans =
            Name: 'Belinda Beispiel'
      Matrikelnr: 1234567
           Noten: [1.3000 1 1.7000]
            Fach: []
  >> orderfields(S)
  ans =
  1x3 struct array with fields:
      Fach
      Matrikelnr
      Name
      Noten

  >> rmfield(S,'Name')
  ans =
  1x3 struct array with fields:
      Matrikelnr
      Noten
      Fach
  >> S
  S =
  1x3 struct array with fields:
      Name
      Matrikelnr
      Noten
      Fach
Der Befehl orderfield sortiert die Felder einer Struktur in alphabetischer Reihenfolge. Mit rmfiled können Felder von Strukturen gelöscht werden. In beiden Fällen ist darauf zu achten, dass die Funktionen nicht direkt auf der Struktur operieren, sondern nur auf einer Kopie. Daher ist ggf. das Resultat der Strukturvariablen selbst wieder zuzuweisen (z.B. S=rmfield(S,'Name')).
(Autoren: Hörner/Wipper)

siehe auch:


  automatisch erstellt am 12.  1. 2007