Contenuto principale

Creazione di array di celle

Un array di celle può memorizzare diversi tipi e grandezze di dati. In passato, gli array di celle erano consigliati per il testo e per i dati tabellari di tipo diverso, come i dati di un foglio di calcolo. Ora, memorizzare i dati di testo utilizzando un array string, " " e memorizzare i dati tabellari utilizzando un table. Utilizzare array di celle per dati eterogenei che sono referenziati meglio in base alla loro posizione all'interno di un array.

È possibile creare un array di celle in due modi: utilizzando l'operatore {} o la funzione cell.

Quando si dispone di dati da inserire in un array di celle, utilizzare l'operatore di costruzione dell'array di celle {}.

C = {1,2,3;
    'text',rand(5,10,2),{11; 22; 33}}
C=2×3 cell array
    {[   1]}    {[          2]}    {[     3]}
    {'text'}    {5×10×2 double}    {3×1 cell}

Come tutti gli array di MATLAB®, gli array di celle sono rettangolari con lo stesso numero di celle in ogni riga. C è un array di celle 2x3.

È inoltre possibile utilizzare l'operatore {} per creare un array di celle 0x0 vuoto.

C2 = {}
C2 =

  0×0 empty cell array

Quando si desidera aggiungere valori a un array di celle nel tempo o in un loop, creare prima un array vuoto utilizzando la funzione cell. Questo approccio pre-alloca la memoria per l'intestazione dell'array di celle. Ciascuna cella contiene un array vuoto [].

C3 = cell(3,4)
C3=3×4 cell array
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}

Per leggere da celle specifiche o scrivere su di esse, racchiudere gli indici tra parentesi graffe. Ad esempio, popolare C3 con array di dati casuali. Variare la grandezza dell'array in base alla posizione nell'array di celle.

for row = 1:3
   for col = 1:4
      C3{row,col} = rand(row*10,col*10);
   end
end
C3
C3=3×4 cell array
    {10×10 double}    {10×20 double}    {10×30 double}    {10×40 double}
    {20×10 double}    {20×20 double}    {20×30 double}    {20×40 double}
    {30×10 double}    {30×20 double}    {30×30 double}    {30×40 double}

Vedi anche

Argomenti