Créer un cell array
Un cell array peut stocker différents types et différentes tailles de données. Avant, les cell arrays étaient recommandés pour du texte et pour des données tabulaires de différents types, telles que des données provenant d’une feuille de calcul. Maintenant, vous pouvez stocker des données de texte à l’aide d’un tableau string, " "
et stocker des données tabulaires à l’aide d’un table
. Utilisez les cell arrays pour des données hétérogènes qui sont mieux référencées par leur emplacement au sein d’un tableau.
Vous pouvez créer un cell array de deux manières : utilisez l’opérateur {}
ou utilisez la fonction cell
.
Quand vous avez des données à intégrer dans un cell array, utilisez l’opérateur de construction du cell array {}
.
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}
Comme tous les tableaux MATLAB®, les cell arrays sont rectangulaires et disposent du même nombre de cellules dans chaque ligne. C
est un cell array de 2 par 3.
Vous pouvez également utiliser l’opérateur {}
pour créer un cell array vide de 0 par 0.
C2 = {}
C2 = 0×0 empty cell array
Quand vous souhaitez ajouter des valeurs à un cell array au fil du temps ou dans une boucle, créez d’abord un tableau vide à l’aide de la fonction cell
. Cette approche préalloue la mémoire pour l’en-tête du cell array. Chaque cellule contient un tableau vide []
.
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}
Pour lire depuis des cellules spécifiques ou écrire dedans, mettez les indices entre accolades. Par exemple, renseignez C3
avec des tableaux de données aléatoires. Faites varier la taille du tableau en fonction de son emplacement dans le cell array.
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}