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

Mathematik-Online-Lexikon:

Mehrdimensionale Felder


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

Mit Hilfe der folgenden Befehle wird zunächst ein $ (2\times 4\times 3)$-Feld definiert. Die Ziffern der Einträge geben dabei die zugehörigen Indizes wieder:
  >> A(:,:,1)=[111 121 131 141; 211 221 231 241];
  >> A(:,:,2)=A(:,:,1)+1;
  >> A(:,:,3)=A(:,:,1)+2
  A(:,:,1) =
     111   121   131   141
     211   221   231   241
  A(:,:,2) =
     112   122   132   142
     212   222   232   242
  A(:,:,3) =
     113   123   133   143
     213   223   233   243

Größen-, Längen und Dimensionsangaben bei mehrdimensionalen Feldern:

  >> size(A)
  ans =
       2     4     3
  >> length(A)
  ans =
       4
  >> ndims(A)
  ans =
       3
Die Ausgabe von length(A) entspricht der von max(size(A)), ndims(A) gibt die Anzahl der Dimensionen von A, also length(size(A)) zurück.

Indizierung einzelner bzw. mehrerer Elemente:

  >> A(2,4,3)
  ans =
     243
  >> A(:,1,3)
  ans =
     113
     213
  >> A(1:2,4,:)
  ans(:,:,1) =
     141
     241
  ans(:,:,2) =
     142
     242
  ans(:,:,3) =
     143
     243
Summation über eine angegebene Dimension:
  >> sum(A,3)
  ans =
     336   366   396   426
     636   666   696   726
Das Ergebnis entspricht dem von A(:,:,1)+A(:,:,2)+A(:,:,3).

Permutation der Dimensionen und Änderung der Gestalt:

  >> P=permute(A,[2 3 1])
  P(:,:,1) =
     111   112   113
     121   122   123
     131   132   133
     141   142   143
  P(:,:,2) =
     211   212   213
     221   222   223
     231   232   233
     241   242   243

  >> reshape(A,[4 6])
  ans =
     111   131   112   132   113   133
     211   231   212   232   213   233
     121   141   122   142   123   143
     221   241   222   242   223   243
Das Argument [2 3 1] des permute-Befehls bewirkt die Umordnung des Feldes A, so dass der erste, zweite bzw. dritte Index von P dem zweiten, dritten bzw. ersten Index von A entspricht, d.h. es gilt A(z,s,t)=P(s,t,z).

Der Befehl resphape mit der Größenangabe [4 6] erzeugt dagegen eine $ (4\times 6)$-Matrix, deren Elemente spaltenweise A(:) entnommen werden.

Elementzuweisung und Enfernen überflüssiger Dimensionen:

  >> clear M; M(1,10,11,2,1,1,17,4,1,1,1)=1;
  >> size(M)
  ans =
       1    10    11     2     1     1    17     4

  >> S=squeeze(M);
  >> size(S)
  ans =
      10    11     2    17     4
Die direkte Zuweisung eines Elements von M erzeugt eine Matrix entsprechender Größe und setzt alle nicht definierten Elemente 0. Man beachte, dass jene abschließenden Dimensionen automatisch entfernt werden, welche die Länge 1 haben.

Alle Dimensionen der Länge 1 können mit Hilfe des Befehls squeeze entfernt werden. Dabei bleiben die Elemente des Feldes unverändert, jedoch ist bei der Indizierung auf die reduzierte Zahl der Dimensionen zu achten.

(Autoren: Hörner/Wipper)

[Verweise]

  automatisch erstellt am 12.  1. 2007