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

Mathematik-Online-Kurs: MATLAB - Weitere Datentypen

Cell Arrays


[vorangehende Seite] [nachfolgende Seite] [Gesamtverzeichnis][Seitenübersicht]

Cell Arrays (kurz Cells) bilden eine Verallgemeinerung der mehrdimensionalen Felder, da die Elemente einer Cell beliebige Datenstrukturen sein können. Cells können beispielsweie mit Hilfe der Funktion cell oder durch die Klammerung der Elemente mit { } erstellt werden:
  >> C={'Hallo',[1 2;3 4],-3i;sprand(10,10,.1),{1},[]}
  C =
      'Hallo'           [2x2 double]    [0 - 3.0000i]
      [10x10 double]    {1x1 cell  }               []

  >> whos C
    Name      Size                    Bytes  Class
    C         2x3                       650  cell array
  Grand total is 28 elements using 650 bytes

Bei der Indizierung von Cells unter Verwendung der Klammern ( ) entsteht wiederum eine Cell, welche die indizierten Elemente enthält. Dagegen werden bei der Indizierung mit den Klammern { } die indizierten Elemente selbst ausgegeben.

Spezielle Funktionen für Cells sind unter anderem:

 Erzeugung/Manipulation von Cells
   cell, mat2cell, num2cell Erstellen von Cells
   cell2struct, struct2cell Konvertierung Cell/Struktur-Variablen
   celldisp, cellplot Darstellung des Inhalts bzw. der Struktur einer Cell
   deal Zuordnung von Ein- und Ausgaben
   iscell Indikatorfunktion für Cell-Variablen
   cellfun Wendet eine Funktion auf alle Elemente der Cell an

Cells eignen sich insbeondere zur Speicherung von Strings unterschiedlicher Länge.

(Autoren: Hörner/Wipper)

Download:

( .m, 692 ,  27.03.2007)

(Beschreibung der Dateitypen)


Definition und Darstellung einer Cell:
  >> C={'Hallo',[1 2;3 4],-3i;sprand(10,10,.1),{1},[]}
  C =
      'Hallo'           [2x2 double]    [0 - 3.0000i]
      [10x10 double]    {1x1 cell  }               []
  >> celldisp(C)
  C{1,1} =
  Hallo
  C{2,1} =
     (3,1)       0.1306
    (10,1)       0.9261
     (6,3)       0.5540
     (6,4)       0.5355
     (6,5)       0.1482
     (2,7)       0.3633
     (3,7)       0.6382
     (6,8)       0.0165
    (10,8)       0.7479
     (3,9)       0.5833
  C{1,2} =
       1     2
       3     4
  C{2,2}{1} =
       1
  C{1,3} =
          0 - 3.0000i
  C{2,3} =
       []

Indizierungsmöglichkeiten bei Cell Arrays und Zuweisung der Rückgabewerte:

  >> C(1,:)
  ans =
      'Hallo'    [2x2 double]    [0 - 3.0000i]
  >> C{1,:}
  ans =
  Hallo
  ans =
       1     2
       3     4
  ans =
          0 - 3.0000i
  >> {C{1,:}}
  ans =
      'Hallo'    [2x2 double]    [0 - 3.0000i]
  >> [S,M,z]=C{1,:}
  S =
  Hallo
  M =
       1     2
       3     4
  z =
          0 - 3.0000i
Bei der Indizierung C(1,:) wird die erste Zeile von C in Form einer Cell zurückgegeben. Dagegen gibt C{1,:} die Elemente der ersten Zeile von C aus. Diese werden sukzessive der Standardvariablen var zugewiesen. Der Befehl {C{1,:}} sammelt die Rückgabeelemente von C{1,:} in einer Cell. Das Resultat entspricht somit dem des Aufrufs C(1,:). Mittels [S,M,z]=C{1,:} werden die drei Rückgabewerte von C{1,:}, d.h. die Elemente der ersten Zeile von C, den Variablen S, M und z zugewiesen.
(Autoren: Hörner/Wipper)

[vorangehende Seite] [nachfolgende Seite] [Gesamtverzeichnis][Seitenübersicht]

  automatisch erstellt am 5.2.2008