Wiederholen von Kopien eines Arrays
alle in Seite reduzieren
Syntax
B = repmat(A,n)
B = repmat(A,r1,...,rN)
B = repmat(A,r)
Beschreibung
Beispiel
B = repmat(A,n)
gibt ein Array zurück, das n
Kopien von A
in den Zeilen- und Spaltendimensionen enthält. Die Größe von B
ist size(A)*n
, wenn A
eine Matrix ist.
Beispiel
B = repmat(A,r1,...,rN)
gibt eine Liste von Skalaren an, r1,..,rN
, die beschreibt, wie Kopien von A
in jeder Dimension angeordnet sind. Wenn A
N
Dimensionen hat, ist die Größe von B
size(A).*[r1...rN]
. Beispielsweise gibt repmat([1 2; 3 4],2,3)
eine 4x6-Matrix zurück.
Beispiel
B = repmat(A,r)
gibt das Wiederholungsschema mit dem Zeilenvektor r
an. Beispielsweise gibt repmat(A,[2 3])
dasselbe Ergebnis zurück wie repmat(A,2,3)
.
Beispiele
alle reduzieren
Initialisieren der Matrix mit demselben Elementwert
Live Script öffnen
Erstellen Sie eine 3x2-Matrix, deren Elemente den Wert 10 enthalten.
A = repmat(10,3,2)
A = 3×2 10 10 10 10 10 10
Quadratisches Blockformat
Live Script öffnen
Wiederholen Sie Kopien einer Matrix in einer 2x2-Blockanordnung.
A = diag([100 200 300])
A = 3×3 100 0 0 0 200 0 0 0 300
B = repmat(A,2)
B = 6×6 100 0 0 100 0 0 0 200 0 0 200 0 0 0 300 0 0 300 100 0 0 100 0 0 0 200 0 0 200 0 0 0 300 0 0 300
Rechteckiges Blockformat
Live Script öffnen
Wiederholen Sie Kopien einer Matrix in einer 2x3-Blockanordnung.
A = diag([100 200 300])
A = 3×3 100 0 0 0 200 0 0 0 300
B = repmat(A,2,3)
B = 6×9 100 0 0 100 0 0 100 0 0 0 200 0 0 200 0 0 200 0 0 0 300 0 0 300 0 0 300 100 0 0 100 0 0 100 0 0 0 200 0 0 200 0 0 200 0 0 0 300 0 0 300 0 0 300
Dreidimensionales Block-Array
Live Script öffnen
Wiederholen Sie Kopien einer Matrix in einer 2x3x2-Blockanordnung.
A = [1 2; 3 4]
A = 2×2 1 2 3 4
B = repmat(A,[2 3 2])
B = B(:,:,1) = 1 2 1 2 1 2 3 4 3 4 3 4 1 2 1 2 1 2 3 4 3 4 3 4B(:,:,2) = 1 2 1 2 1 2 3 4 3 4 3 4 1 2 1 2 1 2 3 4 3 4 3 4
Vertikaler Stapel von Zeilenvektoren
Live Script öffnen
Stapeln Sie einen Zeilenvektor vier Mal vertikal.
A = 1:4;B = repmat(A,4,1)
B = 4×4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Horizontaler Stapel von Spaltenvektoren
Live Script öffnen
Stapeln Sie einen Spaltenvektor vier Mal horizontal.
A = (1:3)'; B = repmat(A,1,4)
B = 3×4 1 1 1 1 2 2 2 2 3 3 3 3
Tabellarisches Blockformat
Live Script öffnen
Erstellen Sie eine Tabelle mit den Variablen Age
und Height
.
A = table([39; 26],[70; 63],'VariableNames',{'Age' 'Height'})
A=2×2 table Age Height ___ ______ 39 70 26 63
Wiederholen Sie Kopien der Tabelle in einem 2x3-Blockformat.
B = repmat(A,2,3)
B=4×6 table Age Height Age_1 Height_1 Age_2 Height_2 ___ ______ _____ ________ _____ ________ 39 70 39 70 39 70 26 63 26 63 26 63 39 70 39 70 39 70 26 63 26 63 26 63
repmat
wiederholt die Eingaben der Tabelle und hängt eine Zahl an die neuen Variablennamen an.
Kombinieren von Vektorelementen
Live Script öffnen
Erstellen Sie zwei Spaltenvektoren.
A = [1; 3; 5];B = [2; 4];
Generieren Sie alle Elementkombinationen der beiden Vektoren mithilfe von repelem
und repmat
. Jede Zeile der Ausgabe T
ist eine Kombination mit dem ersten Element aus dem ersten Vektor und dem zweiten Element aus dem zweiten Vektor. Dieser Befehl ist äquivalent zum Ermitteln des kartesischen Produkts zweier Vektoren.
T = [repelem(A,numel(B)) repmat(B,numel(A),1)]
T = 6×2 1 2 1 4 3 2 3 4 5 2 5 4
In Releases ab R2023a können Sie auch die Funktion combinations verwenden, um alle Elementkombinationen zweier Vektoren zu generieren.
T = combinations(A,B)
T=6×2 table A B _ _ 1 2 1 4 3 2 3 4 5 2 5 4
Eingabeargumente
alle reduzieren
A
— Eingabearray
Skalar | Vektor | Matrix | mehrdimensionales Array
Eingabearray (Input Array), angegeben als Skalar, Vektor, Matrix oder mehrdimensionales Array.
Datentypen: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| table
| datetime
| duration
| calendarDuration
| categorical
| cell
Unterstützung komplexer Zahlen: Ja
n
— Anzahl der Wiederholungen eines Input Array in Zeilen- und Spaltendimensionen
ganzzahliger Wert
Anzahl der Wiederholungen eines Input Array in Zeilen- und Spaltendimensionen, angegeben als ganzzahliger Wert. Wenn n
0
oder negativ ist, dann ist das Ergebnis ein leeres Array.
Datentypen: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
r1,...,rN
— Wiederholungsfaktoren für jede Dimension (als separate Argumente)
ganzzahlige Werte
Wiederholungsfaktoren für jede Dimension, angegeben als separate Argumente ganzzahliger Werte. Wenn ein beliebiger Wiederholungsfaktor 0
oder negativ ist, dann ist das Ergebnis ein leeres Array.
Datentypen: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
r
— Vektor aus Wiederholungsfaktoren für jede Dimension (als Zeilenvektor)
ganzzahlige Werte
Vektor von Wiederholungsfaktoren für jede Dimension, angegeben als Zeilenvektor ganzzahliger Werte. Wenn ein beliebiger Wert in r
0
oder negativ ist, dann ist das Ergebnis ein leeres Array.
Datentypen: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Tipps
Zum Erstellen von Block-Arrays durch Bilden des Tensor-Produkts der Eingabe mit einem aus Einsen bestehenden Array verwenden Sie kron. Um beispielsweise den Zeilenvektor
A = 1:3
vier Mal vertikal zu stapeln, können SieB = kron(A,ones(4,1))
verwenden.Zum Erstellen von Block-Arrays und Ausführen einer binären Operation in einem einzigen Durchgang verwenden Sie bsxfun. In einigen Fällen stellt
bsxfun
eine einfachere Lösung mit einer effizienteren Speichernutzung zur Verfügung. Um beispielsweise die VektorenA = 1:5
undB = (1:10)'
hinzuzufügen und damit ein 10x5-Array zu erstellen, verwenden Siebsxfun(@plus,A,B)
anstelle vonrepmat(A,10,1) + repmat(B,1,5)
.Wenn
A
ein Skalar eines bestimmten Typs ist, können Sie andere Funktionen verwenden, um dasselbe Ergebnis zu erhalten wierepmat
.repmat-Syntax Äquivalente Alternative repmat(NaN,m,n)
NaN(m,n)
repmat(single(inf),m,n)
inf(m,n,'single')
repmat(int8(0),m,n)
zeros(m,n,'int8')
repmat(uint32(1),m,n)
ones(m,n,'uint32')
repmat(eps,m,n)
eps(ones(m,n))
Erweiterte Fähigkeiten
Tall Arrays
Rechnen mit Arrays, die mehr Zeilen haben, als in den Speicher passen.
Diese Funktion unterstützt Tall-Arrays mit folgenden Einschränkungen:
Der Replikationsfaktor in der ersten Dimension muss 1 sein. Beispiel:
repmat(TA,1,n,p,...)
.
Weitere Informationen finden Sie unter Tall-Arrays.
C/C++ Codegenerierung
Generieren Sie C und C++ Code mit MATLAB® Coder™.
Hinweise zur Verwendung und Einschränkungen:
Größenargumente müssen eine feste Größe haben.
Bei dünn besetzten Matrizen unterstützt die Funktion
repmat
keine nachgeordneten Einsen als Eingaben nach den ersten beiden Dimensionen.
GPU-Codegenerierung
Generieren von CUDA® Code für NVIDIA® Grafikprozessoren mit dem GPU Coder™.
Hinweise zur Verwendung und Einschränkungen:
Größenargumente müssen eine feste Größe haben.
Bei dünn besetzten Matrizen unterstützt die Funktion
repmat
keine nachgeordneten Einsen als Eingaben nach den ersten beiden Dimensionen.
HDL-Codegenerierung
Generieren von VHDL, Verilog und SystemVerilog Code für FPGA- und ASIC-Designs mit HDL Coder™.
Thread-Based Environment
Führen Sie mithilfe von MATLAB® backgroundPool
den Code im Hintergrund aus oder machen Sie den Code mit der Parallel Computing Toolbox™ ThreadPool
schneller.
Diese Funktion bietet vollständige Unterstützung für thread-basierte Umgebungen. Weitere Informationen finden Sie unter Run MATLAB Functions in Thread-Based Environment.
GPU-Arrays
Schnellere Codeausführung durch Ausführen auf einer Grafikkarte (GPU) mit der Parallel Computing Toolbox™.
Diese Funktion bietet vollständige Unterstützung für Grafikkarten-Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Verteilte Arrays
Partitionieren von großen Arrays über den kombinierten Speicher Ihres Clusters mit Parallel Computing Toolbox™.
Diese Funktion bietet vollständige Unterstützung für verteilte Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Versionsverlauf
Eingeführt vor R2006a
alle erweitern
R2019b: Einige Wiederholungsargumente führen zu einem Fehler
In Releases ab R2019b führen einige Syntaxen, die nichtskalare oder leere Wiederholungsargumente umfassen, zu einem Fehler. In der folgenden Tabelle ist beschrieben, wie diese Syntaxen aktualisiert werden können.
Fehler | Verwenden Sie stattdessen |
---|---|
repmat(A,r1,r2) , wobei r1 und r2 Zeilenvektoren sind | repmat(A,[r1 r2]) |
repmat(A,empt) , wobei empt ein leeres Array ist | repmat(A,1) |
repmat(A,empt1,empt2) , wobei empt1 und empt2 leere Arrays sind | repmat(A,1) |
repmat(A,n,empt) , wobei n eine Ganzzahl und empt ein leeres Array ist | repmat(A,[n 1]) |
Siehe auch
bsxfun | kron | repelem | reshape | resize | paddata | meshgrid | ndgrid
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus. Webbrowser unterstützen keine MATLAB-Befehle.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Contact your local office