K. Taubert, W. Wiedl: MATLAB Datenstrukturen

2. Das interne eindimensionale Feld

Wir haben gesehen, daß Matlab Skalare und Vektoren nur als spezielle Matrizen kennt. Rechnerintern müssen alle Felder aber als eindimensionales Feld abgespeichert werden, da die Speicherplätze im Rechner nun einmal eindimensional adressiert sind. Diese Anordnung ist auch dem Anwender zugänglich und in einigen Situationen von Bedeutung, weshalb wir hier darauf eingehen.

Jedem Feld ist in Matlab ein eindimensionales internes Feld zugeordnet, das dieselben Elemente wie das Ausgangsfeld, aber eben in einer eindimensionalen Anordnung enthät. Die Feldelemente des Ausgangsfeldes sind dabei entsprechend ihren lexikalisch sortierten Indexwerten angeordnet. Bei einer Matrix läuft das darauf hinaus, daß die Matrixelemente spaltenweise hintereinander angeodnet sind. Hat ein n-dimensionales Feld den Namen M, so kann man mit M(:) auf das gesamte eindimensionale Feld zugreifen. Der Zugriff mit einem n-dimensionalen Index-Vektor erfolgt immer auf das Ausgangsfeld, der Zugriff mit einem skalaren Index immer auf das zugeordnete interne Feld.

Zwar weisen ndims und size auch dieses interne Feld als Matrix mit einer Spalte aus, man kann auf die einzelnen Feldelemente aber mit nur einem Index zugreifen.

» A=magic(3)
A =
     8     1     6
     3     5     7
     4     9     2
» A(:)
ans =
     8
     3
     4
     1
     5
     9
     6
     7
     2
» size(A)
ans =
     3     3
» size(A(:))
ans =
     9     1
» ndims(A(:))
ans =
     2
» A(2,3)
ans =
     7
» A(8)
ans =
     7 


Titelseite       Folge-Dokument