| K. Taubert, W. Wiedl: MATLAB Datenstrukturen |
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