Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

cat

Concatenare gli array

Descrizione

esempio

C = cat(dim,A,B) concatena B al termine di A lungo la dimensione dim quando A e B hanno grandezze compatibili (le lunghezze delle dimensioni corrispondono tranne che per la dimensione operativa dim).

esempio

C = cat(dim,A1,A2,…,An) concatena A1, A2, … , An lungo la dimensione dim.

È possibile utilizzare l'operatore parentesi quadra [] per concatenare o aggiungere array. Ad esempio, [A,B] e [A B] concatenano gli array A e B orizzontalmente e [A; B] li concatena verticalmente.

Esempi

comprimi tutto

Concatenare due matrici, prima verticalmente e poi orizzontalmente.

Creare due matrici e aggiungere verticalmente la seconda matrice alla prima.

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

Ora, aggiungere orizzontalmente la seconda matrice alla prima.

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

Creare due array tridimensionali e concatenarli lungo la terza dimensione. Le lunghezze della prima e della seconda dimensione dell'array risultante coincidono con le lunghezze corrispondenti degli array di input, mentre la terza dimensione si espande.

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

     2     3     9

Creare una tabella e aggiungere una riga utilizzando un array di celle.

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 

Concatenare un vettore di caratteri di data, una data di stringa e una data e ora in un'unica colonna di date. Il risultato è un vettore di data e ora.

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

Creare un array di celle contenente due matrici e concatenarle sia verticalmente che orizzontalmente.

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

Argomenti di input

comprimi tutto

Dimensione lungo la quale operare, specificata come scalare intero positivo. Ad esempio, se A e B sono entrambi matrici 2x2, cat(1,A,B) le concatena verticalmente creando una matrice 4x2 e cat(2,A,B) le concatena orizzontalmente creando una matrice 2x4.

dim deve essere 1 o 2 per l'input di tabella o di data e ora.

Primo input, specificato come scalare, vettore, matrice, array multidimensionale, tabella o orario.

Secondo input, specificato come scalare, vettore, matrice, array multidimensionale, tabella o orario.

  • Gli elementi di B sono concatenati alla fine del primo input lungo la dimensione operativa. Le grandezze degli argomenti di input devono essere compatibili. Ad esempio, se il primo input è una matrice di dimensione 3x2, B deve avere 2 colonne da concatenare verticalmente e 3 righe da concatenare orizzontalmente.

  • Quando si eseguono concatenazioni orizzontali, tutti gli input della tabella devono avere nomi di variabili univoci. Quando sono presenti, i nomi delle righe devono essere identici, tranne che per l'ordine. Allo stesso modo, tutti gli input di orario devono avere gli stessi tempi di riga e tutte le colonne devono avere nomi diversi.

  • È possibile concatenare combinazioni valide di tipi diversi. Per maggiori informazioni, vedere Valid Combinations of Unlike Classes.

Elenco degli input, specificato come elenco separato da virgole di array da concatenare nell'ordine in cui sono specificati.

  • Gli input devono avere grandezze compatibili. Ad esempio, se A1 è un vettore di riga di lunghezza m, ciascuno dei restanti input deve avere m colonne da concatenare verticalmente.

  • Quando si eseguono concatenazioni orizzontali, tutti gli input della tabella devono avere nomi di variabili univoci. Quando sono presenti, i nomi delle righe devono essere identici, tranne che per l'ordine. Allo stesso modo, tutti gli input di orario devono avere gli stessi tempi di riga e tutte le colonne devono avere nomi diversi.

  • È possibile concatenare combinazioni valide di tipi diversi. Per maggiori informazioni, vedere Valid Combinations of Unlike Classes.

Suggerimenti

  • Per costruire del testo concatenando orizzontalmente stringhe, vettori di caratteri o array di celle di vettori di caratteri, utilizzare la funzione strcat.

  • Per costruire un singolo pezzo di testo delimitato da un array di celle di vettori di caratteri o da un array di stringhe, utilizzare la funzione strjoin.

Algoritmi

Quando si concatena un array vuoto a un array non vuoto, cat omette l'array vuoto nell'output. Ad esempio, cat(2,[1 2],[]) restituisce il vettore di riga [1 2].

Se tutti gli argomenti di input sono vuoti e hanno dimensioni compatibili, cat restituisce un array vuoto la cui dimensione è uguale alla dimensione dell'output quando gli input sono non vuoti. Ad esempio, cat(2,zeros(0,1),zeros(0,2)) restituisce un array vuoto 0x3.

Funzionalità estese

Cronologia versioni

Introduzione prima di R2006a