next up previous
suivant: Matrices booléennes monter: Cours de Matlab/Octave précédent: Opérations élémentaires sur les

Accès aux termes d'une matrice et extraction de sous-matrices

L'accès au terme sur la i ème ligne et j ème colonne d'une matrice A peut se faire de deux manières :

Exemple :

>>A=[1 5 9;2 6 10 ;3 7 11 ;4 8 12]
A =

    1    5    9
    2    6   10
    3    7   11
    4    8   12
>>A(2,3)
ans =

    10
>>A(10)
ans =

    10

Pour convertir un couple d'indices en un indice linéaire, on peut utiliser la commande sub2ind

>>l = sub2ind(size(A),2,3)
l =
     
    10
et pour faire l'opération inverse la commande ind2sub
>>[i,j] = sub2ind(size(A),10)
i =
    
    2
j =

    3

Les indices linéaires sont utiles pour accéder à plusieurs termes d'une matrice à la fois. Exemple :

>>I=[2,1,4,2];
>>J=[3,2,1,3];
>>[I;J]
ans =
   2   1   4   2
   3   2   1   3
>>L=sub2ind(size(A),I,J)  
L =

   10    5    4   10
>>A(L)
ans =

   10    5    4   10

Par ailleurs, il est possible d'extraire des sous-matrices de matrice. Exemples :

>>A(2,:) %extraction de la 2è ligne de A
ans =

    2    6   10
>>A(:,3) %extraction de la 3è colonne de A
ans =

    9
   10
   11
   12
>>A([1,4],:) %extraction de la sous-matrices sur les lignes 1 et 4 de la matrice A
ans =

    1    5    9
    4    8   12

>>A([1:3],[1,3]) %extraction de la sous-matrices formée sur les lignes 1 à 3 
                 %et colonnes 1 et 3 de la matrice A
ans =

    1    9
    2   10
    3   11



Frédéric Richard, Aix-Marseille Université. 2012-10-19