MATLAB Repmat

Ammar Ali 13 Juni 2022
MATLAB Repmat

In diesem Tutorial wird das Erstellen einer Matrix mit den wiederholten Werten eines Arrays mit der Funktion repmat() in MATLAB erläutert.

MATLAB-Funktion repmat()

Die Funktion repmat() erzeugt aus einem kleinen Array grosse Matrizen. Die Funktion wiederholt die angegebenen Werte des Arrays, um die große Matrix zu erstellen.

Die Funktion repmat() hat drei grundlegende Syntaxen. Die erste Syntax ist unten angegeben.

M = repmat(A,n);

Die obige Syntax gibt ein Array zurück, das die n Kopien von A in den Dimensionen von Zeilen und Spalten enthält. Wenn A eine Matrix ist, entspricht die Ausgabematrix M der Größe der Matrix A multipliziert mit n, also größer als die Größe von A.

Das erste Argument der Funktion repmat() ist, dass das Eingabearray ein Skalar, eine Matrix, ein Vektor oder ein mehrdimensionales Array sein kann. Das zweite Argument legt fest, wie oft das Eingabearray in den Zeilen- und Spaltendimensionen wiederholt wird.

Die zweite Syntax der Funktion repmat() ist unten.

M = repmat(A,r1,...,rN);

Die obige Syntax gibt eine Liste von Skalaren zurück, die die Anordnung von Kopien von A in jeder Dimension beschreiben. Wenn A eine Matrix mit N Dimensionen ist, ist die Größe von M größer als die von A.

Das r1 definiert die Anzahl der Wiederholungen des Eingabearrays in der ersten Dimension. Die dritte Syntax der Funktion repmat() ist unten angegeben.

M = repmat(A,r);

Die obige Syntax gibt ein Array zurück, das Kopien von A in den Dimensionen von Zeilen und Spalten gemäß dem Wiederholungsschema mit dem Zeilenvektor r enthält.

Zum Beispiel können wir definieren, wie oft sich das gegebene Array oder die Matrix in der Zeilen- und Spaltendimension wiederholt, indem wir den Vektor r verwenden, der die Anzahl der Wiederholungen des Eingabe-Arrays oder der Matrix enthält, um die Ausgabe zu erstellen Matrix.

Wir können die Funktion repmat() verwenden, um eine Matrix zu erstellen, indem wir einen einzelnen Wert wiederholen. Lassen Sie uns beispielsweise eine 2-mal-2-Matrix erstellen, die den Wert 5 enthält.

Siehe Code unten.

clc
clear

M = repmat(5,2,2)

Ausgabe:

M =

     5     5
     5     5

Die Befehle clc und clear werden verwendet, um das Befehls- und Arbeitsbereichsfenster im obigen Code zu löschen. Die Ausgabe ist eine 2-mal-2-Matrix, die nur die Zahl 5 enthält.

Wir können auch die Funktion repmat() verwenden, um eine Matrix aus der Wiederholung einer anderen Matrix zu erstellen. Lassen Sie uns zum Beispiel eine Diagonalmatrix mit der Funktion diag() erstellen und dann eine Matrix erstellen, indem wir die Diagonalmatrix wiederholen.

Siehe Code unten.

clc
clear

D = diag([5 15 25])
M = repmat(D,2,3)

Ausgabe:

D =

     5     0     0
     0    15     0
     0     0    25


M =

     5     0     0     5     0     0     5     0     0
     0    15     0     0    15     0     0    15     0
     0     0    25     0     0    25     0     0    25
     5     0     0     5     0     0     5     0     0
     0    15     0     0    15     0     0    15     0
     0     0    25     0     0    25     0     0    25

Im obigen Code haben wir die Diagonalmatrix 2 Mal in der Zeilendimension und 3 Mal in der Spaltendimension wiederholt.

Die Größe der Ausgabematrix wird 6 x 9, da die Eingabe drei Zeilen hat, und wir haben sie zweimal wiederholt, sodass die Ausgabezeilengröße 6 wird, und die Eingabematrix drei Spalten hat, und wir haben sie dreimal wiederholt sodass die Ausgabespaltengröße 9 wird.

Wir können auch 3D-Matrizen mit der Funktion repmat() erstellen. Wir müssen drei Werte im Wiederholungsschema verwenden.

Lassen Sie uns zum Beispiel eine 6-mal-3-mal-2-Matrix mit der Funktion repmat() erstellen. Siehe Code unten.

clc
clear

D = diag([5 15 25])
M = repmat(D,2,1,2)

Ausgabe:

D =

     5     0     0
     0    15     0
     0     0    25


M(:,:,1) =

     5     0     0
     0    15     0
     0     0    25
     5     0     0
     0    15     0
     0     0    25


M(:,:,2) =

     5     0     0
     0    15     0
     0     0    25
     5     0     0
     0    15     0
     0     0    25

Wie wir sehen können, ist die Ausgabematrix eine dreidimensionale Matrix. Wir können auch eine Matrix mit einem horizontalen oder vertikalen Stapel von Zeilenvektoren erstellen.

Wenn wir beispielsweise den Vektor in einer Dimension nicht wiederholen möchten, können wir stattdessen 1 übergeben. Innerhalb der Funktion repmat() definiert das zweite Argument das Wiederholungsschema für die erste oder die Zeilendimension.

Das dritte Argument definiert das Wiederholungsschema für die zweite oder die Spaltendimension.

Lassen Sie uns beispielsweise eine Matrix mit einem horizontalen Stapel eines Zeilenvektors erstellen. Siehe Code unten.

clc
clear

D = (1:5)'
M = repmat(D,1,5)

Ausgabe:

D =

     1
     2
     3
     4
     5


M =

     1     1     1     1     1
     2     2     2     2     2
     3     3     3     3     3
     4     4     4     4     4
     5     5     5     5     5

Im obigen Code haben wir die Transponierung des gegebenen Vektors genommen, um ihn in einen Spaltenvektor zu konvertieren, um den horizontalen Stapel zu erstellen, aber im Fall des vertikalen Stapels müssen wir die Transponierung des gegebenen Vektors nicht nehmen.

Wir können auch die Funktion repmat() verwenden, um aus einer kleinen Tabelle eine große Tabelle zu erstellen. Lassen Sie uns beispielsweise eine Tabelle mit der Funktion table() erstellen und aus der ersten Tabelle eine weitere große Tabelle erstellen.

Siehe Code unten.

clc
clear

T_1 = table([19; 16],[60; 53],'VariableNames',{'Age' 'Height'})
T_2 = repmat(T_1, 2,2)

Ausgabe:

T_1 =

  2×2 table

    Age    Height
    ___    ______

    19       60
    16       53


T_2 =

  4×4 table

    Age    Height    Age_1    Height_1
    ___    ______    _____    ________

    19       60       19         60
    16       53       16         53
    19       60       19         60
    16       53       16         53

Im obigen Code haben wir die Zeilen- und die Spaltendimension zweimal wiederholt, um die größere Tabelle zu erstellen.

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