Académique Documents
Professionnel Documents
Culture Documents
Fonctions zeros, ones, et eye : 2 Opérations matricielles Courbe y = sin(pi*x) 4.2 Sauvegarde et chargement
1
> > eye(2) % eye comme I : Identity Opérations usuelles définies de façon naturelle : Sauvegarde :
ans = 1 0 > > 2*A > > save NomFichier NomsVariables
0 1 > > A*B % Produit matriciel 0.5 Exemple :
> > x = ones(1,5) > > A^ p > > save test.mat A x y
ans = 1 1 1 1 1 > > inv(A)
0 Par défaut sauvegarde dans matlab.mat.
y
Taille d’une matrice : size, length : Résolution de systèmes linéaires : Chargement :
> > X = A\B % solution de A*X = B
> > size(x) > > load NomFichier
> > X = B/A % solution de X*A = B
ans = 1 5 −0.5
Attention : Voir aussi les commandes who, whos, pack et clear.
Transposée, conjuguée, retournement, rotation : > > A.*B % Produit terme à terme
>> A’ % Transposée conjuguée de A > > X = A./B % Division terme à terme −1
4.3 Scripts
>> A.’ % Transposée de A > > A.^ p % Puissance terme à terme 0 0.5 1 1.5 2
x Script : suite de commandes dans un fichier. Commen-
>> flipud(A) % Up - Down Autres fonctions utiles sur les matrices : taires par : « % ». Nom de fichier avec extension « .m »
>> fliplr(A) % Left - Right > > poly(A) % Polyn. caract. de A (nomfich.m). Exécution sous Matlab : nom du fichier, sans
>> rot90(A) % Rotation de 90˚ > > det(A) % Déterminant de A 3.3 Graphiques 2D : mesh « .m ». Variables de l’espace de travail visbibles dans le
> > trace(A) % Trace de A script et réciproquement.
> > [V,D] = eig(A) % Val. et vect. propres Pour une fonction de deux variables :
1.8 L’opérateur d’énumération « : »
Matrices creuses : gain en mémoire et en coût de calcul > > x = 1 : 0.1 : 2 ; y = -1 : 0.1 : 1 ; 4.4 Fonctions
Pas à pas, incrément : > > A = eye(2) ; B = sparse(A) ; > > [X,Y] = meshgrid(x,y) ;
> > A*[1 ;1] ; % 4 multiplications > > mesh(X,Y,cos(pi*X).*sin(pi*Y)) Définition :
> > x = 0.5 : 0.1 : 0.85 function y = sinuscardinal(x)
> > B*[1 ;1] ; % 2 multiplications
x = 0.5000 0.6000 0.7000 0.8000 Mais aussi meshc, contour, image, surf, etc. . . z = sin(x) ; % Variable de stockage
Pour certaines fonctions, matrice = tableau de valeurs :
Incrémentation par défaut : 1 (voir aussi linspace) : > > exp(A) ; log(A) ; sqrt(A) ; y = z./x ; % Variable de sortie
>> x = 1 : 5 > > round(A) ; sign(A) ; rem(A,2) ; Appel identique aux fonctions Matlab :
x = 1 2 3 4 5 Pour d’autres, matrice = suite de vecteurs colonnes > > sincpi = sinuscardinal(pi) ;
Sélection d’éléments :
> > min(A) ; % Minima des colonnes 1 Autre exemple :
> > max(A) ; % Maximum
> > A(1,3) ; A(1,1 : 3) ; A( : ,3) ; function [min, max] = minetmax(x)
> > sum(A) ; % Somme
min = min(x) ; max = max(x) ;
Si on a : > > prod(A) ; % Somme
> > cumsum(A) ; % Sommes cumulés Appel :
> > A = [1,2,3 ; 4,5,6 ; 7,8,9] ; 0
> > cumprod(A) ; % Produits cumulés > > [miny, maxy] = minetmax(y) ;
alors, extraction lignes 1 à 2 et toutes les colonnes : > > sort(A) ; % Tri des colonnes Passage par valeur seulement. Nombres d’arguments en
> > median(A) ; % Val. médiane des col entrée et en sortie acessibles dans nargin et nargout. Va-
> > A(1 : 2, : )
ans = 1 2 3 Décomposition de matrices : −1 riables de l’espace de travail invisible dans les fonctions et
> > [U,S,V] = svd(X,0) ; % Valeurs singulières réciproquement. Outils de mise au point (déboggage) : plus
4 5 6
> > R = chol(X) ; % Cholesky
1
2 simple : keyboard ; plus évolués : déboggeur intégré. . .
> > [Q,R] = qr(X) ; % QR 0
1.9 Chaı̂nes de caractères > > [L,U] = lu(X) ; % LU (Lower, Upper) 1.5 5 Boucles et contrôles
Variables contenant des chaı̂nes de caractères : −1 1
3 Affichages 5.1 Test « if » :
> > mess = ’Bienvenue sur Matlab’ ;
Structure générale :
Manipulations de même type que pour les vecteurs : 3.1 Affichage alpha-numérique
3.4 Affichage de plusieurs courbes if (expression logique)
> > mess = [mess ’ v 5’] Façon Matlab ou façon C
suite d’instructions 1 ;
mess = Bienvenue sur Matlab v 5 > > disp(mess) subplot divise la fenêtre graphique : else
pi vaut 3.142
Conversion de nombres en chaı̂nes de caractères : num2str, >> subplot(2,1,1) suite d’instructions 2 ;
> > fprintf(’pi vaut %1.3e \n’,pi) 1 2
int2str, sprintf : >> plot(x,y) end
pi vaut 3.141e+000 3 4
> > mess = [’pi vaut ’, num2str(pi)] Saisie d’une valeur : >> subplot(2,1,2) Opérateurs logiques : et (&), ou (|, xor), égal (==), dif-
mess = pi vaut 3.142 > > rep=input(’Valeur de lambda : ’) ; >> plot(x,y.^ 2) férent (~ =), supérieur (>, >=), inférieur (<, <=), non (~).
Fonctions logiques : exist, any, find, isinf, isnan, etc. . .
Évaluation d’une chaı̂ne : eval et feval : La commande figure crée une nouvelle fenêtre graphique.
Expression considérée fausse si 0, et vraie sinon.
3.2 Graphiques 1D : plot figure(2) permet d’adresser la figure n˚ 2.
> > nomvar = ’x’ ;
> > eval([nomvar ’1 = sqrt(-1)’]) Tracé d’une fonction avec axes et titre : 5.2 Boucle « for » :
x1 = 0.0000 + 1.0000i > > x = (0 : 0.1 : 2) ; y = sin(x*pi) ; 4 Fichiers, scripts, fonctions Structure générale :
> > NomFct = ’sin’ ; > > plot(x,y) ; % abscisse, ordonnée
> > feval(NomFct,pi) > > title(’Courbe y = sinus(pi*x)’) for i=1 : 10
4.1 Répertoire de travail suite d’instructions ;
ans = 1.2246e-16 % sin(pi) 0 ! > > xlabel(’x’) ; ylabel(’y’)
Commandes cd et dir (idem dos) ; cd et ls (idem Unix). end