Vektor an 3D-Matrix in MATLAB anhängen

Ammar Ali 15 Februar 2024
Vektor an 3D-Matrix in MATLAB anhängen

In diesem Tutorial wird das Anhängen eines Vektors an eine 3D-Matrix mit der Funktion cat() in MATLAB erläutert.

Vektor an 3D-Matrix in MATLAB anhängen

Eine 3D-Matrix oder ein Array unterscheidet sich von einer 2D-Matrix oder einem Array. In einer 2D-Matrix oder einem Array haben wir zwei Dimensionen, wobei die erste Dimension als Zeile und die zweite Dimension als Spalte bezeichnet wird.

In einer 3D-Matrix oder einem Array haben wir 3 Dimensionen, bei denen die ersten beiden Dimensionen mit der 2D-Matrix oder dem Array identisch sind und die dritte Dimension als Seiten oder Blätter bezeichnet wird. Eine einfache 3D-Matrix oder ein Array ist unten dargestellt.

3D-Matrix

In einer 2D-Matrix oder einem Array wird jedes Element an einer bestimmten Position oder Zeilen- und Spaltennummer platziert, und wir können ein Element anhand seiner Position abrufen und ersetzen. In einer 3D-Matrix oder einem Array wird jedes Element an einer bestimmten Position, Zeile, Spalte und Seitenzahl platziert, und wir können ein Element anhand seiner Position abrufen und ersetzen.

Beispielsweise wird das erste Element in einer 3D-Matrix oder einem Array an der Stelle (1,1,1) platziert, die auch im obigen Diagramm angezeigt wird. Wenn wir einen Vektor am Ende einer 3D-Matrix anhängen möchten, sollte die Größe des Vektors gleich der Größe jeder Seite oder 3. Dimension sein, die in der 3D-Matrix vorhanden ist.

Lassen Sie uns beispielsweise eine 3D-Matrix oder ein Array mit 1 Zeile, 2 Spalten und 2 Seiten erstellen. Siehe Code unten.

clc
clear

MyMatrix   = ones(1,2,2)

Ausgabe:

MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1

MATLAB zeigt ein 3D-Array oder eine Matrix in Bezug auf die dritte Dimension. Im obigen Beispiel haben wir eine 3D-Matrix mit 2 Seiten, und jede Seite hat eine 2D-Matrix mit 1 Zeile und 2 Spalten, die in der Ausgabe angezeigt werden.

Wenn wir ein Element aus der 3D-Matrix erhalten möchten, müssen wir seine Position wie die Zeilen-, Spalten- und Seitennummer angeben. Wenn wir am Ende der obigen 3D-Matrix oder des Arrays einen weiteren Vektor anhängen oder hinzufügen möchten, können wir die Funktion cat() verwenden, die zwei Matrizen entsprechend der angegebenen Dimension verkettet.

Die Funktion cat() hat drei Eingabeargumente, wobei das erste Argument die Dimensionsnummer, das zweite Argument die 3D-Matrix und das dritte Argument der Vektor oder die Matrix ist, die wir an die 3D-Matrix anhängen möchten. In unserem Fall möchten wir den Vektor am Ende der 3D-Matrix hinzufügen, was bedeutet, dass wir den Vektor nach der letzten Seite hinzufügen möchten.

Die Funktion cat() erstellt eine weitere Seite in der 3D-Matrix, um den angegebenen Vektor zu speichern.

Lassen Sie uns zum Beispiel einen Vektor am Ende der obigen 3D-Matrix oder des Arrays mit der Funktion cat() erstellen und anhängen. Siehe Code unten.

MyVector = [5 6];
MyMatrix   = ones(1,2,2)
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, MyVector)

Ausgabe:

MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1


s =

    "After Adding Another Vector"


MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1


MyMatrix(:,:,3) =

     5     6

Wie wir in der obigen Ausgabe sehen können, hat die 3D-Matrix nach der Verkettung 3 Seiten, und die letzte Seite enthält den Eingabevektor. Für eine erfolgreiche Verkettung sollten die Größe der Dimension, die wir in der Funktion cat() übergeben haben, und die Vektorgröße gleich sein.

Im obigen Beispiel haben wir nur eine einzige Zeile auf jeder Seite, daher sind keine Fehler aufgetreten. Wenn wir eine 3D-Matrix mit mehr als einer Zeile haben, unterscheidet sich die Größe der dritten Dimension oder Seite von der Größe des angegebenen Vektors.

Um dieses Problem zu lösen, können wir mit der Funktion zeros() einen Vektor aus Nullen erstellen, der die gleiche Größe wie die dritte Dimension oder Seite hat, und dann können wir das erste Array der Nullenmatrix durch den angegebenen Vektor ersetzen . Jetzt wird der gegebene Vektor zu einer Matrix mit zusätzlichen Nullen, die wir einfach am Ende der 3D-Matrix hinzufügen oder anhängen können.

Lassen Sie uns beispielsweise eine 3D-Matrix mit 2 Zeilen, 2 Spalten und 2 Seiten erstellen und dann den angegebenen Vektor mit der oben genannten Methode hinzufügen. Siehe Code unten.

clc
clear

MyVector = [5 6];
MyMatrix   = ones(2,2,2)
NewVector = zeros(2,2)
NewVector(1,:) = MyVector
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, NewVector)

Ausgabe:

MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


NewVector =

     0     0
     0     0


NewVector =

     5     6
     0     0


s =

    "After Adding Another Vector"


MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


MyMatrix(:,:,3) =

     5     6
     0     0

Wir können in der obigen Ausgabe sehen, dass der Vektor zur 3D-Matrix hinzugefügt wird, aber wir mussten auch Nullen hinzufügen, um die Größe gleich zu machen. Wenn wir einen Spaltenvektor hinzufügen möchten, müssen wir der oben beschriebenen Methode folgen.

Wenn die 3D-Matrix nur eine Spalte auf jeder Seite hat und ihre Größe gleich der Größe des Eingabespaltenvektors ist, können wir sie einfach mit der Funktion cat() hinzufügen. Wenn die 3D-Matrix mehr als eine Spalte hat oder die Größe unterschiedlich ist, müssen wir die Größe gleich machen, indem wir Nullen entlang des angegebenen Spaltenvektors hinzufügen, und dann können wir sie mit der gleichen Methode, die wir in diesem Fall verwendet haben, zur 3D-Matrix hinzufügen Zeilenvektor hinzuzufügen.

Wir können auch die Zeilen, Spalten oder eine ganze Seite einer 3D-Matrix ersetzen. Lassen Sie uns zum Beispiel eine 3D-Matrix mit der Funktion ones() erstellen und die erste Zeile der ersten Seite mit dem Append-Operator ersetzen.

Siehe Code unten.

clc
clear

MyVector = [5 6];
MyMatrix   = ones(2,2,2)
s = "After replacing row"
MyMatrix(1,:,1) = MyVector

Ausgabe:

MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


s =

    "After replacing row"


MyMatrix(:,:,1) =

     5     6
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1

Im obigen Code haben wir eine 3D-Matrix aus Einsen mit 2 Zeilen, 2 Spalten und 2 Seiten erstellt. Wir haben die erste Zeile der ersten Seite durch einen anderen Vektor ersetzt.

Wie wir in der obigen Ausgabe sehen, ist die Ausgabe vor und nach dem in der Ausgabe angezeigten Text unterschiedlich, da wir die erste Zeile der ersten Seite ersetzt haben. Die Zeilengröße, die ersetzt wird, und die neue Zeile sollten gleich sein.

Wir können auch eine ganze Seite oder eine beliebige Dimension durch eine andere Matrix oder ein anderes Array ersetzen, aber die Größe sollte dieselbe sein.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Matrix