Accès à un élément d'un tableau
Accès en lecture : connaître la valeur d'une cellule d'un tableau
Pour accéder à un élément particulier d'un tableau ou d'une matrice, il suffit d'entrer le nom du tableau ou de la matrice suivi entre parenthèses du ou des indices dont on veut lire ou écrire la valeur.
Exemple :
Par exemple, si je veux afficher la valeur de :
1 2 3 4 | >> M(3,2) ans = 22 |
Remarque :
Lorsque l'on veut faire référence à un élément particulier d'un tableau à deux dimensions, il faut forcément indiquer l'indice de ligne et l'indice de colonne correspondants à cet élément.
Dans toutes les fonctions ou commandes MATLAB pour lesquelles il est nécessaire d'indiquer les numéros de ligne et de colonne, il faut les donner dans cet ordre là : ligne, puis colonne.
Ainsi M(3,2)
correspond à l'élément de la troisième ligne et deuxième colonne de la matrice M
.
Remarque :
Les indices (de ligne ou de colonne) commencent toujours à 1, et non à 0 comme dans d'autres langages.
Dans le cas particulier des vecteurs ligne ou colonne, on peut n'indiquer qu'un seul indice (celui de la colonne ou de la ligne) pour atteindre l'élément qui nous intéresse.
En effet, il n'y a pas d'ambiguïté dans ce cas-là, puisque l'autre indice est nécessairement égal à 1.
Exemple :
Si l'on considère le vecteur ligne L = \left[\begin{array}{ccc}1 & 2 & 3 \end{array}\right], et que l'on veut atteindre l'élément de la troisième colonne, on écrira :
1 2 3 4 | >> L(3) ans = 3 |
Accès en écriture : affecter une valeur à une cellule d'un tableau
Pour modifier seulement un élément d'un tableau, on utilise la même syntaxe.
Exemple :
Par exemple, si je veux que M_{32} ait la valeur 32, au lieu de 22 :
1 2 3 4 5 6 | >> M(3,2)=32 M = 1 2 3 11 12 13 21 32 23 |
Vous remarquerez que MATLAB ré-affiche du coup toute la matrice, en prenant en compte la modification.
Question / Réponse :
Question
Que se passe-t'il si l'on affecte une valeur à un élément d'une matrice qui n'existe pas encore ?
Si, par exemple, on définit la valeur P(2,3)
d'une nouvelle matrice P
?
Remarque :
Vous remarquerez que contrairement aux langages classiques, il est inutile de dimensionner les tableaux à l'avance : ils se construisent au fur et à mesure, et MATLAB les agrandit si nécessaire !
Attention :
Si je n'indique qu'un seul indice, cela signifie qu'il s'agit nécessairement du numéro de colonne, car par défaut MATLAB créera un vecteur ligne :
1 2 3 4 | >> L(3) = 3 L = 0 0 3 |
Conseil :
Pour améliorer les performances des programmes écrits en MATLAB, il est fortement conseillé de pré-dimensionner les tableaux dont on connaît la taille a priori, et surtout s'ils sont de grandes dimensions.
Tableaux 2D : indexation 1D
Nous avons vu que l'on pouvait accéder, en lecture comme en écriture, à un élément d'un tableau 2D en précisant son indice de ligne et son indice de colonne. C'est l'indexation classique par deux indices d'un tableau à deux dimensions.
En MATLAB, il existe aussi une indexation à un seul indice pour les tableaux à deux dimensions. Par défaut, MATLAB parcourt alors le tableau de ligne en ligne, colonne par colonne.
Exemple :
Soit une matrice 2D :
1 2 3 4 5 6 | M=[1 2 3; 4 5 6; 7 8 9] M = 1 2 3 4 5 6 7 8 9 |
On peut accéder aux éléments de ce tableau en indiquant un indice unique :
1 2 3 4 5 6 7 8 9 10 11 | >> M(3) ans = 7 >> M(7)=7 M = 1 2 7 4 5 6 7 8 9 |