Main Content

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

cat

Verknüpfen von Arrays

Beschreibung

C = cat(dim,A,B) verknüpft B mit dem Ende von A entlang einer Dimension dim, wenn A und B kompatible Größen aufweisen (die Längen der Dimensionen stimmen bis auf die Ausführungsdimension dim überein).

Beispiel

C = cat(dim,A1,A2,…,An) verknüpft A1, A2, … , An entlang der Dimension dim.

Sie können als Operator eckige Klammern [] verwenden, um Arrays zu verknüpfen oder anzuhängen. Beispielsweise verknüpfen [A,B] und [A B] die Arrays A und B horizontal, während [A; B] diese Arrays vertikal verknüpft.

Beispiel

Beispiele

alle reduzieren

Verknüpfen Sie zwei Matrizen vertikal und anschließend horizontal.

Erstellen Sie zwei Matrizen und hängen Sie die zweite Matrix vertikal an die erste an.

A = ones(3)
A = 3×3

     1     1     1
     1     1     1
     1     1     1

B = zeros(3)
B = 3×3

     0     0     0
     0     0     0
     0     0     0

C1 = cat(1,A,B)
C1 = 6×3

     1     1     1
     1     1     1
     1     1     1
     0     0     0
     0     0     0
     0     0     0

Hängen Sie jetzt die zweite Matrix horizontal an die erste an.

C2 = cat(2,A,B)
C2 = 3×6

     1     1     1     0     0     0
     1     1     1     0     0     0
     1     1     1     0     0     0

Erstellen Sie zwei dreidimensionale Arrays und verknüpfen Sie diese entlang der dritten Dimension. Die Längen der ersten und zweiten Dimensionen im daraus resultierenden Array stimmen mit den entsprechenden Längen in den Input Arrays (Eingabearrays) überein, während die dritte Dimension erweitert wird.

A = rand(2,3,4);
B = rand(2,3,5);
C = cat(3,A,B);
szC = size(C)
szC = 1×3

     2     3     9

Erstellen Sie eine Tabelle und fügen Sie mithilfe eines Zellenarrays eine Zeile hinzu.

LastName = {'Sanchez';'Johnson';'Li';'Diaz'};
Age = [38;43;38;40];
T1 = table(LastName,Age)
T1=4×2 table
     LastName      Age
    ___________    ___

    {'Sanchez'}    38 
    {'Johnson'}    43 
    {'Li'     }    38 
    {'Diaz'   }    40 

Trow = {'Brown',49};
T2 = cat(1,T1,Trow)
T2=5×2 table
     LastName      Age
    ___________    ___

    {'Sanchez'}    38 
    {'Johnson'}    43 
    {'Li'     }    38 
    {'Diaz'   }    40 
    {'Brown'  }    49 

Verknüpfen Sie einen Datums-Zeichenvektor, ein Zeichenfolgendatum und eine Datums-/Uhrzeitangabe zu einer einzigen Datumsspalte. Das Ergebnis ist ein Datums-/Uhrzeitvektor.

chardate = '2016-03-24';
strdate = "2016-04-19";
t = datetime('2016-05-10','InputFormat','yyyy-MM-dd');
C = cat(1,chardate,strdate,t)
C = 3x1 datetime
   24-Mar-2016
   19-Apr-2016
   10-May-2016

Erstellen Sie ein Zellenarray, das zwei Matrizen enthält, und verknüpfen Sie die Matrizen vertikal und horizontal.

M1 = [1 2; 3 4];
M2 = [5 6; 7 8];
A1 = {M1,M2};
Cvert = cat(1,A1{:})
Cvert = 4×2

     1     2
     3     4
     5     6
     7     8

Chorz = cat(2,A1{:})
Chorz = 2×4

     1     2     5     6
     3     4     7     8

Eingabeargumente

alle reduzieren

Dimension, entlang der die Operation erfolgt, angegeben als positiver ganzzahliger Skalar. Wenn beispielsweise A und B jeweils 2x2-Matrizen sind, erfolgt die Verknüpfung durch cat(1,A,B) vertikal, um eine 4x2-Matrix zu erstellen. Mit cat(2,A,B) erfolgt die Verknüpfung horizontal, um eine 2x4-Matrix zu erstellen.

dim muss für eine Tabellen- oder Timetable-Eingabe entweder 1 oder 2 sein.

Erste Eingabe, angegeben als Skalar, Vektor, Matrix, mehrdimensionales Array, Tabelle oder Timetable.

Zweite Eingabe, angegeben als Skalar, Vektor, Matrix, mehrdimensionales Array, Tabelle oder Timetable.

  • Die Elemente von B sind mit dem Ende der ersten Eingabe entlang der Ausführungsdimension verknüpft. Die Größen der Eingabeargumente müssen kompatibel sein. Wenn beispielsweise die erste Eingabe eine Matrix der Größe 3x2 ist, muss B für die vertikale Verknüpfung zwei Spalten und für die horizontale Verknüpfung drei Zeilen aufweisen.

  • Bei der horizontalen Verknüpfung müssen alle Tabelleneingaben eindeutige Variablennamen aufweisen. Sofern vorhanden, müssen Zeilennamen identisch sein, was jedoch nicht für die Reihenfolge gilt. Ähnlich müssen alle Timetable-Eingaben dieselben Zeilenzeiten aufweisen, während alle Spalten unterschiedliche Namen haben müssen.

  • Sie können gültige Kombinationen verschiedener Typen verknüpfen. Weitere Informationen finden Sie unter Valid Combinations of Unlike Classes.

Die Liste der Eingaben, angegeben als durch Kommas getrennte Liste von Arrays zum Verknüpfen in der Reihenfolge, in der sie angegeben werden.

  • Die Größen der Eingaben müssen kompatibel sein. Wenn beispielsweise A1 ein Zeilenvektor mit der Länge m ist, müssen die verbleibenden Eingaben jeweils m Spalten aufweisen, um eine vertikale Verknüpfung zu ermöglichen.

  • Bei der horizontalen Verknüpfung müssen alle Tabelleneingaben eindeutige Variablennamen aufweisen. Sofern vorhanden, müssen Zeilennamen identisch sein, was jedoch nicht für die Reihenfolge gilt. Ähnlich müssen alle Timetable-Eingaben dieselben Zeilenzeiten aufweisen, während alle Spalten unterschiedliche Namen haben müssen.

  • Sie können gültige Kombinationen verschiedener Typen verknüpfen. Weitere Informationen finden Sie unter Valid Combinations of Unlike Classes.

Tipps

  • Zum Aufbau von Text durch horizontale Verknüpfung von Zeichenfolgen, Zeichenvektoren oder Zellenarrays von Zeichenvektoren verwenden Sie die Funktion strcat.

  • Zum Aufbau eines einzelnen begrenzten Textes aus einem Zellenarray von Zeichenvektoren oder einem String Array (Zeichenfolgenarray) verwenden Sie die Funktion strjoin.

Algorithmen

Beim Verknüpfen eines leeren Arrays mit einem Array, das nicht leer ist, lässt cat das leere Array in der Ausgabe weg. Beispielsweise gibt cat(2,[1 2],[]) den Zeilenvektor [1 2] zurück.

Wenn alle Eingabeargumente leer sind und kompatible Größen aufweisen, gibt cat ein leeres Array zurück, dessen Größe gleich der Ausgabegröße ist, wenn die Eingaben nicht leer sind. Beispielsweise gibt cat(2,zeros(0,1),zeros(0,2)) ein leeres 0x3-Array zurück.

Erweiterte Fähigkeiten

Versionsverlauf

Eingeführt vor R2006a