Aggiunta o eliminazione di celle in un array di celle
Gli array di celle seguono le stesse regole di base per l'espansione, la concatenazione e l'eliminazione degli altri tipi di array di MATLAB®. Tuttavia, è possibile indicizzare un array di celle in due modi: con le parentesi graffe {} per accedere al contenuto delle celle o con le parentesi () per fare riferimento alle celle stesse. Tenere presente questa distinzione quando si aggiungono, eliminano o combinano celle in un array di celle.
Aggiunta di celle
Un modo comune per espandere un array di celle è quello di concatenare gli array di celle verticalmente o orizzontalmente. Utilizzare l'operatore di concatenazione standard con parentesi quadre []. Separare gli elementi con punti e virgola per la concatenazione verticale o con virgole per la concatenazione orizzontale.
C1 = {'one',2};
C2 = {ones(3,3),'four'};
C = [C1; C2]C=2×2 cell array
{'one' } {[ 2]}
{3×3 double} {'four'}
C_horz = [C1,C2]
C_horz=1×4 cell array
{'one'} {[2]} {3×3 double} {'four'}
La concatenazione di un array di celle con un array non di celle racchiude quest'ultimo in una singola cella. Pertanto, l'array di celle deve essere un vettore.
A = [1 2 3; 4 5 6]; C3 = [C1,A]
C3=1×3 cell array
{'one'} {[2]} {2×3 double}
Per creare celle separate dall'array non di celle, è possibile utilizzare num2cell.
C4 = [C,num2cell(A)]
C4=2×5 cell array
{'one' } {[ 2]} {[1]} {[2]} {[3]}
{3×3 double} {'four'} {[4]} {[5]} {[6]}
Gli array di celle supportano anche l'espansione scalare. Ossia, se si assegnano valori al contenuto delle celle al di fuori dell'array esistente, l'array si espande per includerli. L'array espanso ha forma rettangolare e tutte le celle intermedie contengono array numerici vuoti. Quando si assegna il contenuto di una cella, utilizzare le parentesi graffe.
C{3,3} = 9C=3×3 cell array
{'one' } {[ 2]} {0×0 double}
{3×3 double} {'four' } {0×0 double}
{0×0 double} {0×0 double} {[ 9]}
C{end,end+1} = []C=3×4 cell array
{'one' } {[ 2]} {0×0 double} {0×0 double}
{3×3 double} {'four' } {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {[ 9]} {0×0 double}
Per sostituire il contenuto delle celle, definire un array di celle utilizzando le parentesi graffe, quindi assegnarlo a un insieme di celle di dimensioni equivalenti utilizzando le parentesi.
C(3,:) = {'replacement', rand(2,2), 42, 'row'}C=3×4 cell array
{'one' } {[ 2]} {0×0 double} {0×0 double}
{3×3 double } {'four' } {0×0 double} {0×0 double}
{'replacement'} {2×2 double} {[ 42]} {'row' }
Eliminazione di celle
La sintassi per rimuovere righe o colonne di un array di celle è coerente con quella degli altri array di MATLAB. Impostare le celle in modo che siano uguali a una coppia di parentesi quadre vuote. Ad esempio, rimuovere la seconda riga di C.
C(2,:) = []
C=2×4 cell array
{'one' } {[ 2]} {0×0 double} {0×0 double}
{'replacement'} {2×2 double} {[ 42]} {'row' }
Racchiudendo gli indici tra parentesi graffe si sostituisce il contenuto di una cella con un array vuoto.
C{1,1} = []C=2×4 cell array
{0×0 double } {[ 2]} {0×0 double} {0×0 double}
{'replacement'} {2×2 double} {[ 42]} {'row' }
Combinazione di celle
Le celle possono contenere dati di qualsiasi tipo o dimensione, quindi per combinare celle o estrarre dati da più celle contemporaneamente è necessario che i dati siano compatibili. Per dettagli ed esempi, vedere Accesso ai dati nell'array di celle.