next up previous contents
suivant: Exercices sur la syntaxe monter: Programmation précédent: Vecteurs   Table des matières


Matrices

Les matrices suivent la même syntaxe que les vecteurs. Les composantes des lignes sont séparées par des virgules et chaque ligne est séparée de l'autre par un point virgule.

»% une manière de définir une matrice 3 x 3:
»A=[1,2,3;0,0,atan(1);5,9,-1];

»% une autre syntaxe pour faire la même chose
»A=[1 2 3               
»     0 0 atan(1)
»     5 9 -1]     
 A  =
   1.    2.    3.        
   0.    0.     .7853982
   5.    9.  - 1.        
 
»% à ne pas confondre avec ce groupe d'instructions
»A=[1 2 3...      
»0 0 atan(1)...
»5 9 -1]
 A  =
   1.    2.    30.    0.    0.7853982    5.    9.  - 1.


»v=1:5;W=v'*v           % multiplication de matrices
W =
     1     2     3     4     5
     2     4     6     8    10
     3     6     9    12    15
     4     8    12    16    20
     5    10    15    20    25
»W(1,:)                 %extraction de  la première ligne
 ans  =
   1.    2.    3.    4.    5.
»A=eye(3,3)     % Matrice identité
A =
     1     0     0
     0     1     0
     0     0     1
»B=toeplitz([2,1,0,0])   % une matrice de Toeplitz
B =
     2     1     0     0
     1     2     1     0
     0     1     2     1
     0     0     1     2
Le tableau 1 résume les principales fonctions affectant ou effectuant des opérations sur des matrices. Noter que les fonctions scalaires courantes, (sin, exp, etc...) peuvent aussi s'appliquer à des matrices, composante par composante, comme dans l'exemple suivant
»u=[0:1:4]
u =
     0     1     2     3     4
»v=sin(u)
v =
         0    0.8415    0.9093    0.1411   -0.7568

La fonction $find(C(A))$ renvoie les indices dans le tableau $A$ des composantes vérifiant la condition $C(A)$. Par exemple

»A=rand(1,5)    % cree un vecteur ligne contenant 5 nombres repartis
                                % aleatoirement entre 0 et 1
»find(A>0.5)    % renvoie les indices des composantes de A >0.5
»find(A)         % renvoie les indices des composantes de A differentes de 0
»find(A==0.2)    % renvoie les indices des composantes de A egales a 0.2

Exercice 2   Tester et comprendre les deux lignes suivantes
A=[1  2  -1 1 ; -1 1 0 3]
find(A>0)


Tableau 1: Principales opérations sur les matrices.
Fonction Description
ones(i,j) crée un tableau de i lignes j colonnes contenant des 1
zeros(i,j) crée un tableau de i lignes j colonnes contenant des 0
eye(i,j) crée un tableau de i lignes j colonnes avec des 1 sur la diagonale principale et 0 ailleurs
toeplitz(u) crée une matrice de Toeplitz symétrique dont la première ligne est le vecteur u
diag(u) crée une matrice carrée avec le vecteur u sur la diagonale et 0 ailleurs
diag(U) extrait la diagonale de la matrice U
triu(A) renvoie la partie supérieure de A
tril(A) renvoie la partie inférieure de A
linspace(a,b,n) crée un vecteur de n composantes uniformément réparties de a à b
A$\backslash$b résolution du système linéaire Ax=b
cond(A) conditionnement d'une matrice (norme euclidienne)
det(A) déterminant d'une matrice
rank(A) rang d'une matrice
inv(A) inverse d'une matrice
pinv(A) pseudo inverse d'une matrice
svd(A) valeurs singulières d'une matrice
norm(A) norme matricielle ou vectorielle
u' prend le transposé de u
u*v multiplication matricielle
u+v addition matricielle
u-v soustraction matricielle
u.* v multiplication des tableaux u et v terme à terme
u./v division du tableau u par le tableau v terme à terme
find(C(A)) indices des composantes du tableau A vérifiant la condition C(A)



next up previous contents
suivant: Exercices sur la syntaxe monter: Programmation précédent: Vecteurs   Table des matières
marie 2005-02-01