Liste des commandes (non exhaustive) sous Matlab Cours 8 : Tableaux multidimensionnels et structures sous Matlab Type de données Vecteurs et matrices numériques : o tableaux numériques à une ou deux dimensions de nombres réels ou complexes lignes A colonnes Tableaux multidimensionnels numériques : o tableaux numériques de plus de deux dimensions colonnes lignes pages Chaînes de caractères (ou «string») : o vecteur dont les éléments sont des caractères s représentés par des codes numériques (code ASCII) Tableaux de caractères : o tableaux multidimensionnels constitués de caractères Tableaux de cellules (ou «cell arrays») : o tableaux multidimensionnels dont chaque élément est une cellule lignes h e l l colonnes o Tableaux de structures (ou «structure arrays») : o tableaux multidimensionnels dont chaque élément est structuré par champs lexicaux.champ1.champ2.champ3 structures.champ1.champ2.champ3.champ1.champ2.champ3 F. Nicol Matlab : Multi Arrays Page 1
Tableaux multidimensionnels numériques création de tableaux numériques : utiliser les crochets [] size(a) : taille du tableau A o retourne un vecteur contenant la longueur des dimensions (le nombre de lignes, de colonnes, de pages, etc.) size(a, dim) : taille d une dimension de A o retourne la taille de la dimension spécifiée par dim ndims(a) : dimension d un tableau o retourne le nombre de dimensions du tableau A (nombre d indices) o équivalent à length(size(a)) ones(m, N, P, ) ou ones([m N P ]) : génère un tableau d éléments 0 o crée un tableau M N P d éléments 0 zeros(m, N, P, ) ou zeros([m N P ]) : génère un tableau d éléments 1 o crée un tableau M N P d éléments 1 repmat(a, M, N) ou repmat(a, [M N]) : réplication de tableaux o réplique le tableau A par blocs M N repmat(a, M, N, P,...) ou repmat(a, [M N P...]) : réplication de tableaux o réplique le tableau A par blocs M N P [A, B] : concaténation horizontale des tableaux A et B [A; B] : concaténation verticale des tableaux A et B horzcat(a, B, C,...) : concaténation horizontale o concatène horizontalement les tableaux A, B, C, o les tableaux doivent avoir le même nombre de lignes vertcal(a, B, C,...) : concaténation verticale o concatène verticalement les tableaux A, B, C, o les tableaux doivent avoir le même nombre de colonnes cat(dim, A, B, C, ) : concaténation de tableaux o concatène les tableaux A, B, C, o dim = dimension par rapport à laquelle on concatène les tableaux B = reshape(a,[s 1, s 2,, s N ]) : modifier la forme du tableau A o redimensionne le tableau A o s 1, s 2,, s N = dimensions du tableau modifié B Tableaux de caractères création de tableaux à une dimension : texte entre côtes ischar(s) : teste si l objet s est un tableau de caractères o renvoie 1 si s est un tableau de caractères et 0 sinon [s 1, s 2 ] : concaténation horizontale de deux chaînes des caractères s 1 et s 2 [s 1 ; s 2 ] : concaténation verticale de deux chaînes des caractères s 1 et s 2 o les chaînes s 1 et s 2 doivent être de même longueur o retourne un tableau de caractères dont chaque ligne est constituée d une chaîne de caractères char(s 1, s 2,, s N ) : concaténation de chaînes de caractères o forme un tableaux de caractères contenant les chaînes s 1, s 2,, s N o place chaque chaîne dans une ligne du nouveau tableau o introduit automatiquement des caractères blanc si les chaînes sont de longueurs différentes F. Nicol Matlab : Multi Arrays Page 2
deblank(s) : supprime les caractères blanc de la chaîne de caractères s a = double(s) : convertit un tableau de caractères en son équivalent ASCII numérique o retourne dans le tableau a le code ASCII des caractères contenus dans le tableau s s = char(a) : convertit un tableau de codes ASCII en un tableau de caractères o retourne dans le tableau s les caractères correspondant au code ASCII contenu dans le tableau a X = str2num(s) : convertit un tableau de caractères de nombres en son équivalent numérique o retourne dans le tableau X l équivalent numérique du tableau de caractères s s = num2str(x) : convertit un tableau numérique en son équivalent texte o retourne dans le tableau de caractères s l équivalent texte du tableau numérique X Tableaux de cellules tableaux de cellules : «cell arrays» o Tableaux dont les éléments sont des cellules o Stockage hiérarchique de données de taille et de type différents Syntaxe des tableaux de cellules syntaxe : utiliser les accolades { } celldisp(c) : affiche le contenu des cellules du tableau C cellplot(c) : affiche un graphique représentant le contenu du tableau C C{i, j} : contenu de la cellule (i, j) du tableau C C(i,j) : cellule (i, j) du tableau C Création de tableaux de cellules C(i,j) = {X} : création d un tableau de cellules par affectation de valeurs o indices de la cellule (i, j) entre parenthèses ( ) o affecte le contenu de l objet X entre accolades { } C{i, j} = X : création d un tableau de cellules par affectation de valeurs o indices de la cellule (i, j) entre accolades { } o affecte le contenu de l objet X au contenu de la cellule C{i, j} cell(m, N) : pré allocation d un tableau de cellules o crée un tableau de cellules vides de dimension M N Accéder au contenu des cellules C = A{i,j} : renvoie dans C le contenu de la cellule (i, j) du tableau A d = A{i, j}{k, l} : renvoie dans d l élément (k, l) de la cellule (i, j) du tableau A C = A{I :J, K :L} : renvoie dans C le contenu des cellules (I :J, K :L) du tableau A [X, Y, Z, ] = deal(a, B, C, ) : o retourne dans les variables X, Y, Z, la valeur des inputs A, B, C, F. Nicol Matlab : Multi Arrays Page 3
[X, Y, Z, ] = deal(a{i :J, K :L } ) : o retourne dans les variables X, Y, Z, la valeur des cellules (I :J, K :L) du tableau A A(i, :) = [ ] : supprime la ligne i du tableau de cellules A A{i, j} = [ ] : affecte la matrice vide au contenu de la cellule (i, j) du tableau A Modifier la forme d un tableau de cellules [C1, C2] : concaténation horizontale des tableaux de cellules C 1 et C 2 o les tableaux C 1 et C 2 doivent avoir le même nombre de lignes [C1 ; C2] : concaténation verticale des tableaux de cellules C 1 et C 2 o les tableaux C 1 et C 2 doivent avoir le même nombre de colonnes horzcat(a, B, C,...) : concaténation horizontale o concatène horizontalement les tableaux A, B, C, o les tableaux doivent avoir le même nombre de lignes vertcal(a, B, C,...) : concaténation verticale o concatène horizontalement les tableaux A, B, C, o les tableaux doivent avoir le même nombre de lignes cat(dim, A, B, C, ) : concaténation de tableaux o concatène les tableaux A, B, C, o dim = dimension par rapport à laquelle on concatène les tableaux reshape(c, [s 1 s 2 s N ]) : o redimensionne le tableau C o s 1, s 2,, s N = dimensions du tableau modifié Tableaux de cellules multidimensionnels cell(m, N, P, ) : pré allocation de tableaux de cellules multidimensionnels o crée un tableau de cellules vides de dimension M N P Tableaux de cellules emboîtés tableaux de cellules emboîtés : une cellule peut contenir un tableau de cellule emboîté A{i, j}{k, l} : contenu de la cellule (k,l) du tableau emboîté dans la cellule (i, j) cellule 1,1 cellule 1,2 5 2 8 1 2 7 3 0 6 7 3 3 4 Test1 10 13 17 Tableaux de cellules de texte iscell(c) : teste si l objet C est un tableau de cellules o renvoie 1 si C est un tableau de cellules et 0 sinon iscellstr(c) : teste si l objet C est un tableau de cellules de texte o renvoie 1 si C est un tableau de cellules de texte et 0 sinon F. Nicol Matlab : Multi Arrays Page 4
Convertir des tableaux de cellules cellstr(s) : convertit un tableau de caractères en un tableau de cellules o crée un tableau de cellules de texte à partir du tableau de caractères S char(c) : convertit un tableau de cellules C en un tableau de caractères o crée un tableau de caractères à partir du tableau de cellules C mat2cell(a, M, N) : convertit une matrice numérique en un tableau de cellules o crée un tableau de cellules à partir de la matrice A o M = vecteur spécifiant le nombre de lignes des cellules o sum(m) = nombre de lignes de la matrice A N = vecteur spécifiant le nombre de colonnes des cellules sum(n) = au nombre de colonnes de la matrice A cell2mat(c) : convertit un tableau de cellules en une matrice numérique o pour chaque paire de cellules voisines, les dimensions du contenu des cellules doivent coïncider C = num2cell(a) : convertit un tableau numérique en un tableau de cellules o retourne un tableau de cellules C dont chaque cellule contient un élément du tableau numérique A C = num2cell(a, dims) : convertit un tableau numérique en un tableau de cellules o retourne un tableau de cellules C dont chaque cellule contient les éléments du tableau A relativement à la dimension dims Tableaux de structures tableaux de structures : «structure arrays» o tableaux dont les éléments sont structurés par champs lexicaux o stockage hiérarchique de données de type et de taille différents Syntaxe des tableaux de structures S(i) : i ème structure du tableau de structures S S(i).champ : contenu du champ lexical champ de la i ème structure du tableau de structures S Création de tableaux de structures struct( champ 1, {}, champ 2, {},, champ N, {}) : création de tableaux de structures par pré allocation o crée un tableau vide de structures de champs champ 1,, champ N struct( champ 1, val 1, champ 2, val 2,, champ N, val N ) : création de tableaux de structures par pré allocation o crée un tableau de structures de champs champ 1,, champ N o val 1,,val N : valeurs affectées aux champs champ 1,, champ N F. Nicol Matlab : Multi Arrays Page 5
Accéder aux données d un tableau de structures [X, Y, Z, ] = deal(s.champ) : o renvoie les valeurs du champ champ du tableau S dans les variables outputs X, Y, Z, [X{:}] = deal(s.champ) : o renvoie les valeurs du champ champ du tableau S dans le tableau de cellules X S.(expression) : accéder aux champs en utilisant des noms «dynamiques» o accéder au champ contenu dans expression du tableau de structures S Ajouter ou supprimer des champs aux structures rmfield(s, champ 1, champ 2,, champ N ) : supprimer des champs dans chaque structure d un tableau o supprime les champs champ 1, champ 2,, champ N de chaque structure du tableau S size (S) : taille d un tableau o retourne les dimensions du tableau de structures S size(s(i).champ) : taille d un tableau o retourne les dimensions du contenu du champ champ de la i ème structure du tableau S Tableaux de structures emboîtés tableaux de structures emboîtés : o un champ d une structure peut contenir un tableau de structures emboîté Convertir des tableaux de structures S = cell2struct(c,{ champ 1,,champ N }, dim) : convertit un tableau de cellules en un tableau de structures o crée un tableau de structures S à partir du tableau de cellules C o champ 1,,champ N = noms des champs du tableau de structures S o dim : dimension du tableau de cellules C utilisée pour créer le tableau de structures S C = struct2cell(s) : convertit un tableau de structures en un tableau de cellules o crée un tableau de cellules C de dimension P M N à partir du tableau de structures S de dimension M N dont chaque structure contient P champs F. Nicol Matlab : Multi Arrays Page 6