Main Content

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

cat

Description

C = cat(dim,A,B) concatène B à la fin de A le long de la dimension dim lorsque A et B sont de tailles compatibles (les longueurs des dimensions correspondent, sauf pour la dimension de fonctionnement dim).

exemple

C = cat(dim,A1,A2,…,An) concatène A1, A2, … , An le long de la dimension dim.

Vous pouvez utiliser l’opérateur de crochets [] pour concaténer ou ajouter des tableaux. Par exemple, [A,B] et [A B] concatène les tableaux A et B horizontalement, et [A; B] les concatène verticalement.

exemple

Exemples

réduire tout

Concaténez deux matrices verticalement, puis horizontalement.

Créez deux matrices, puis ajoutez verticalement la deuxième matrice sur la première.

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

Ajoutez maintenant la deuxième matrice horizontalement sur la première.

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

Créez deux tableaux 3D et concaténez-les le long de la troisième dimension. Les longueurs de la première et de la deuxième dimension dans le tableau en résultant correspondent aux longueurs respectives des tableaux en entrée, alors que la troisième dimension s’étend.

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

     2     3     9

Créez une table et ajoutez une ligne en utilisant un cell array.

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 

Concaténez une date sous la forme d'un vecteur de caractères, une date sous la forme d'une chaîne de caractère et une date sous la forme d'un datetime vers une colonne unique. Le résultat est un vecteur datetime.

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

Créez un cell array contenant deux matrices, et concaténez les matrices verticalement et horizontalement.

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

Arguments d'entrée

réduire tout

Dimension sur laquelle opérer, spécifiée en tant que scalaire entier positif. Par exemple, si A et B sont tous les deux des matrices de 2 x 2, alors cat(1,A,B) les concatène verticalement et crée une matrice de 4 x 2. cat(2,A,B) les concatène horizontalement et crée une matrice de 2 x 4.

Pour les tables ou timetable en entrée, dim doit être soit 1 ou 2.

Première entrée, spécifiée sous forme de scalaire, de vecteur, de matrice, de tableau multidimensionnel, de table ou de timetable.

Deuxième entrée, spécifiée sous forme de scalaire, de vecteur, de matrice, de tableau multidimensionnel, de table ou de timetable.

  • Les éléments de B sont concaténés à la fin de la première entrée le long de la dimension sur laquelle l'opération est réalisée. Les tailles des arguments en entrée doivent être compatibles. Par exemple, si la première entrée est une matrice de 3 x 2, alors B doit disposer de 2 colonnes à concaténer verticalement, et de 3 lignes à concaténer horizontalement.

  • Lors de la concaténation horizontale, toutes les tables en entrée doivent avoir un nom de variable unique. S’ils sont présents, les noms de ligne doivent être identiques, sauf pour l’ordre. De la même manière, les informations d'horodatage des lignes des timetable en entrée doivent être identiques, et toutes les colonnes doivent porter un nom différent.

  • Vous pouvez concaténer des combinaisons valides de différents types. Pour plus d’informations, consultez Valid Combinations of Unlike Classes.

Liste d’entrées, spécifiée en tant que liste de tableaux séparés par des virgules à concaténer dans l’ordre dans lequel ils sont spécifiés.

  • Les entrées doivent être de tailles compatibles. Par exemple, si A1 est un vecteur ligne de longueur m, alors chacune des entrées restantes doit disposer de m colonnes à concaténer verticalement.

  • Lors de la concaténation horizontale, toutes les tables en entrée doivent avoir un nom de variable unique. S’ils sont présents, les noms de ligne doivent être identiques, sauf pour l’ordre. De la même manière, les informations d'horodatage des lignes des timetable en entrée doivent être identiques, et toutes les colonnes doivent porter un nom différent.

  • Vous pouvez concaténer des combinaisons valides de différents types. Pour plus d’informations, consultez Valid Combinations of Unlike Classes.

Conseils

  • Pour construire le texte en concaténant horizontalement des chaînes, des vecteurs de caractères ou des cell arrays de vecteurs de caractères, utilisez la fonction strcat.

  • Pour construire un seul élément de texte délimité à partir d'un cell array de vecteurs de caractères ou d’un tableau de chaîne de caractères, utilisez la fonction strjoin.

Algorithmes

Lorsque vous concaténez un tableau vide dans un tableau non vide, cat ignore le tableau vide dans la sortie. Par exemple, cat(2,[1 2],[]) renvoie le vecteur ligne [1 2].

Si tous les arguments en entrée sont vides et de tailles compatibles, alors cat renvoie un tableau vide dont la taille équivaut à celle de la sortie lorsque les entrées ne sont pas vides. Par exemple, cat(2,zeros(0,1),zeros(0,2)) renvoie un tableau vide de 0 x 3.

Capacités étendues

Historique des versions

Introduit avant R2006a