Main Content

Indexation des matrices

Dans MATLAB®, chaque variable est une matrice qui peut comporter de nombreux nombres. Lorsque vous souhaitez accéder à des éléments sélectionnés d’une matrice, utilisez l’indexation.

Prenons l'exemple d'une matrice de dimension 4 x 4 A :

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16

Il existe deux manières de faire référence à un élément particulier d’une matrice. La manière la plus courante consiste à spécifier des indices de ligne et de colonne, tels que

A(4,2)
ans = 14

De manière moins courante mais parfois utile, on peut utiliser un indice unique qui traverse chaque colonne dans l’ordre :

A(8)
ans = 14

Le fait d’utiliser un indice pour faire référence à un élément particulier d’une matrice s’appelle l’indexation linéaire.

Si vous souhaitez faire référence à des éléments situés en dehors d’une matrice du côté droit d’une instruction d’affectation, MATLAB génère une erreur.

test = A(4,5)

Index in position 2 exceeds array bounds (must not exceed 4).

Cependant, du côté gauche d’une instruction d'affectation, vous pouvez spécifier des éléments en dehors des dimensions actuelles. La taille de la matrice augmente pour accommoder les nouveaux arrivants.

A(4,5) = 17
A = 4×5

     1     2     3     4     0
     5     6     7     8     0
     9    10    11    12     0
    13    14    15    16    17

Pour faire référence à plusieurs éléments d’une matrice, utilisez l’opérateur deux-points pour spécifier une plage d'indexation selon la formulation suivante : start:end. Par exemple, listez les éléments des trois premières lignes de la seconde colonne de A :

A(1:3,2)
ans = 3×1

     2
     6
    10

Les deux-points utilisés seuls, sans valeur de début ou de fin, spécifient tous les éléments dans cette dimension. Par exemple, sélectionnez toutes les colonnes de la troisième ligne de A :

A(3,:)
ans = 1×5

     9    10    11    12     0

L’opérateur deux-points vous permet également de créer un vecteur de valeurs espacées uniformément en utilisant la formulation plus générale start:step:end.

B = 0:10:100
B = 1×11

     0    10    20    30    40    50    60    70    80    90   100

Si vous omettez la valeur centrale de l'incrément, comme dans start:end, MATLAB utilise la valeur d'incrément par défaut 1.