next up previous contents index
Next: 2.6 Exercices d'application sur Up: 2. Les types de Previous: 2.4.8 Les fonctions size   Table des matières   Index

2.5 Référencer, extraire, concaténer Matrices et Vecteurs

Les coefficients d'une matrice peuvent être référencés avec leurs indices précisés entre parenthèses, (). Par exemple, si l'on considère la matrice A suivante:

 
  A  =
 
!   1.    2.    3. !
!   5.    4.    3. !
!   1.    1.    1. !

Pour avoir l'élément de la troisième ligne, troisième colonne, il suffit de taper:

-->A33=A(3,3)
 A33  =
 
    1.

Remarque: si la matrice est un vecteur colonne, on peut se contenter de référencer un élément en précisant uniquement son indice de ligne, et inversement pour un vecteur ligne.

Un des avantages d'un langage comme scilab est que l'on peut extraire des sous matrices tout aussi aisément. Quelques exemples simples sont illustrés ci-dessous:

 
-->A(:,2)
 ans  =
 
!   2. !
!   4. !
!   1. !
Cette commande permet d'extraire la deuxième colonne de la matrice A, les : indiquent que l'on prend toutes les lignes de la matrice.

 
-->A(3,:)
 ans  =
 
!   1.    1.    1. !
Dans cet exemple, on ne considère que la troisième ligne et toutes les colonnes.
  
-->A(1:2,1:2)
 ans  =
 
!   1.    2. !
!   5.    4. !

Passons maintenant à la syntaxe générale: si A est une matrice de taille (n,m) et si $ v_1=(i_1,i_2,...,i_p)$ et $ v_2=(j_1,j_2,...,j_q)$ sont deux vecteurs (ligne ou colonne) d'indices dont les valeurs sont telles que $ i\leq
i_k \leq n$ et $ i\leq j_k \leq m$ alors A(V1,V2) est la matrice de dimension (p,q) formée par l'intersection des lignes et des colonnes. Exemples:

 -->A([1 3],[2 3])
 ans  =
 
!   2.    3. !
!   1.    1. !

ou encore:

 
-->A([3 1],[2 1])               
 ans  =
 
!   1.    1. !
!   2.    1. !

Dans la pratique on utilise généralement des extractions plus simples, comme celle d'un bloc contigü ou bien d'une ou plusieurs colonnes ou lignes. Dans ce cas, on utilise l'expression $ i_{debut}:incr:i_{fin}$ pour générer les vecteurs d'indices, ainsi que le caractère : pour désigner toute l'étendue dans la dimension adéquate. Ainsi, pour obtenir la sous matrice formée de la première et troisième ligne:

-->A(1:2:3,:) // ou encore A([1 3],:)
 ans  =
 
!   1.    2.    3. !
!   1.    1.    1. !

La fonction $ permet de n'afficher que la dernière ligne ou colonne de la matrice.

-->A($,$-1)
 ans  =
 
    1.
Cette fonction nous donne l'élément de la dernière ligne et de l'avant dernière colonne.
Passons maintenant à la concaténation de matrices qui est l'opération permettant d'assembler (en les juxtaposant) plusieurs matrices, pour en obtenir une autre. On va d'abord définir les sous matrices $ A_{11}, A_{12}, A_{21}, A_{22}$:
-->A11=1;
 
-->A12=[2 3 4];
 
-->A21=[1;1;1];
 
-->A22=[4,9,16;8,27,64;16,81,256];

Enfin on obtient A par concaténation de ces 4 blocs:

-->A=[A11,A12;A21,A22]
 A  =
 
!   1.    2.     3.     4.   !
!   1.    4.     9.     16.  !
!   1.    8.     27.    64.  !
!   1.    16.    81.    256. !


next up previous contents index
Next: 2.6 Exercices d'application sur Up: 2. Les types de Previous: 2.4.8 Les fonctions size   Table des matières   Index
root
2000-02-07