Ajouter ou supprimer des cellules dans un cell array
Les cell arrays suivent les mêmes règles d’expansion, de concaténation et de suppression de base que les autres types de tableaux MATLAB®. Toutefois, vous pouvez indexer un cell array de deux manières : avec des accolades {} pour accéder au contenu des cellules ou avec des parenthèses () pour faire référence aux cellules elles-mêmes. Gardez cette différence à l’esprit lorsque vous ajoutez, supprimez ou combinez des cellules dans un cell array.
Ajouter des cellules
Un moyen courant d’étendre un cell array consiste à effectuer un concaténation verticale ou horizontale. Utilisez l’opérateur de concaténation standard par crochets []. Séparez les éléments par des points-virgules pour la concaténation verticale ou par des virgules pour la concaténation horizontale.
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 concaténation d’un cell array et d’un objet qui n’est pas un cell array place ce dernier dans une seule cellule. Par conséquent, le cell array doit être un vecteur.
A = [1 2 3; 4 5 6]; C3 = [C1,A]
C3=1×3 cell array
{'one'} {[2]} {2×3 double}
Pour créer des cellules distinctes pour l’objet qui n’est pas un cell array, vous pouvez utiliser num2cell.
C4 = [C,num2cell(A)]
C4=2×5 cell array
{'one' } {[ 2]} {[1]} {[2]} {[3]}
{3×3 double} {'four'} {[4]} {[5]} {[6]}
Les cell arrays supportent également l’expansion scalaire. En d’autres termes, si vous affectez des valeurs au contenu de cellules se trouvant en dehors du tableau existant, ce dernier s’étend pour les inclure. Le tableau étendu est rectangulaire et toutes les cellules intermédiaires contiennent des tableaux numériques vides. Lorsque vous affectez le contenu d’une cellule, utilisez des accolades.
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}
Pour remplacer le contenu des cellules, définissez un cell array avec des accolades, puis affectez-le à un ensemble de cellules de taille équivalente avec des parenthèses.
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' }
Supprimer des cellules
La syntaxe permettant de supprimer des lignes ou des colonnes d’un cell array est la même que pour les autres tableaux MATLAB. Définissez les cellules comme égales à une paire de crochets vides. Par exemple, supprimez la deuxième ligne de C.
C(2,:) = []
C=2×4 cell array
{'one' } {[ 2]} {0×0 double} {0×0 double}
{'replacement'} {2×2 double} {[ 42]} {'row' }
Le fait de placer les indices entre des accolades remplace le contenu d’une cellule par un tableau vide.
C{1,1} = []C=2×4 cell array
{0×0 double } {[ 2]} {0×0 double} {0×0 double}
{'replacement'} {2×2 double} {[ 42]} {'row' }
Combiner des cellules
Les cellules peuvent contenir des données de tout type ou de toute taille. Par conséquent, la combinaison de plusieurs cellules ou l’extraction des données de plusieurs cellules à la fois nécessite que les données soient compatibles. Pour plus d’informations et des exemples, consultez Accéder aux données d’un cell array.