1.2.
Mode Interactif
En mode commande, MATLAB affiche des chevrons >> et attend une commande :
>> 1+3
ans =
>> 3^3
ans =
27
Le dernier résultat est stocké dans la variable ans qu’il est possible de réutiliser :
>> ans^2
ans =
729
>> ans-2
ans =
727
Les commandes introduites antérieurement peuvent être rappelées par l’utilisation des flèches
haut et bas. Analyser des autres flèches et des touches end, esc, del, backspace ou des
combinaisons de touches.
1.3. Commentaires, ponctuations
>> 2+3 % je fais une somme : Commentaire
ans =
>> 2*2 % lorsqu’il n’y a pas « ; » à la fin de l’instruction, elle est exécutée et le résultat est
affiché
ans =
4
REQ : Pas de point virgule à la fin d’une expression : affichage du résultat.
1.4. Variables scalaires, workspace, opérations élémentaires
>> var=2
var =
>> autre=3 ; % lors qu’on ajoute un « ; » à la fin de l’instruction, elle est exécutée mais le
résultat n’est pas affiché
>> who % fournit la liste des fonctions définies dans le workspace
Your variables are:
ans autre var
>> whos % donne plus d’informations sous windows
Name Size Bytes Class Attributes
autre 1x1 8 double
var 1x1 8 double
>> clear autre % efface la variable autre du workspace
>> who
Your variables are:
Var
>> clear % efface toutes les variables du workspace
>> clc % efface le contenu du ‘Command Window’
>> clear all % efface toutes les variables de la mémoire
Opérations élémentaires : + - * / or \ ^
>> 4/2 % Division
ans =
>> 4\2 % équivalent à 2/4
ans =
0.5000
1.5. Affichage
FORMAT indique le format d’affichage des nombres.
FORMAT SHORT (par défaut) : 4 chiffres à droite du point décimal
FORMAT LONG : 14 chiffres à droite du point décimal
FORMAT SHORT G : 14 chiffres à droite du point décimal
FORMAT LONG G : 14 chiffres à droite du point décimal
Exemples
>> pi % 4 chiffres à droite du point décimal
ans =
3.1416
>> format long g % 14 chiffres à droite du point décimal
>> pi
ans =
3.14159265358979
1.6. Les variables
>> x=pi/3 % le résultat est stocké dans la variable x
x=
1.0471975511966
>> cos(x) % équivalent à cos(pi/3)
ans =
0.5
y=sin(x)^2+cos(x)^2 ; % le résultat est stocké dans la variable y
Si on rentre des commandes erronées, Matlab nous l’indique par un message d’erreur.
>> 5* % expression incomplète
??? 5*
|
Error: Expression or statement is incomplete or incorrect. % message d’erreur
>> aaa % variable indéfinie
??? Undefined function or variable 'aaa'. % message d’erreur
1.7. Entrées-sorties
fopen (ouverture d’un fichier) fclose (fermeture d’un fichier)
fscanf (lecture formatée) fprintf (écriture formatée)
>> N=input('valeur de N='); % entrée interactive
valeur de N=
>> disp('ceci est un test'); % affiche le texte
ceci est un test
1.8. Chaîne de caractères
>> Ch='salut' % conserver une chaîne de caractère dans la variable Ch
Ch =
Salut
2. Vecteurs et matrices
Cette partie doit être bien maîtrisée pour les TP de Traitement du Signal.
2.1. Vecteurs
a)Création de vecteurs
Par défaut, le vecteur est une ligne à plusieurs colonnes
>> a= [4 5 3] % créer un vecteur ligne
a=
4 5 3
>> E= a(1) % élément N° 1 du vecteur a
E=
Très utilisé dans MATLAB
>> debut=0
debut =
0
>> fin=3
fin =
3
>> pas =0.5
pas =
0.5
>> compt= debut: pas : fin % créer un vecteur ‘compt’ dont les éléments varient de ‘debut ‘
jusqu’à ‘fin’ en ajoutant chaque fois un pas
compt =
Columns 1 through 5
0 0.5 1 1.5 2
Columns 6 through 7
2.5 3
>> compt1= 0 :0.3 :1.1 % générer un vecteur compt1
compt1 =
0 0.3 0.6 0.9
b) Transposition
L’opérateur apostrophe utilisée pour créer un vecteur colonne est en fait l’opérateur
transposition :
>> tab=a' % vecteur colonne : le transposé de a
tab =
4
5
3
c) Combinaison de vecteurs
>> b = [1:3] % créer un vecteur b
b=
1 2 3
>> c= [10 :10 :30]
c=
10 20 30
>> d= [b c] % rassembler les éléments des vecteurs b et c dans un seul vecteur d
d=
1 2 3 10 20 30
>> e= [b (2 :-1 :1) c] % on accole c avec une portion de b dans l’ordre renversé
e=
1 2 3 2 1 10 20 30
Notez la différence entre () et [] :
() Ensemble d’arguments ==fonction
[] Énumération d’éléments ==tableau
d) Opérations scalaires
>> a= [4 5 3]
a=
4 5 3
>> s= sum(a) % sommer les éléments du vecteur a
s=
12
>> p= prod(a) % calculer le produit des éléments du vecteur a
p=
60
>> m= mean(a) % calculer la moyenne des éléments du vecteur a
m=
4
>> r= sqrt(a) % créer un vecteur r dont les éléments sont la racine carrée de chaque élément
du vecteur a
r=
2.0000 2.2361 1.7321
>> som= a+f % créer un vecteur som dont les éléments sont la somme des éléments des
vecteurs a et f
som =
4 4 6
2.2. Matrices
a)Création de matrices
Une matrice est un ensemble de lignes comportant toutes le même nombre de colonnes.
Matlab, depuis la version 5, supporte les matrices à n dimensions (n>2).
>> x1= [1 2 3 ; 4 5 6 ; 7 8 9] % créer une matrice x1 : on sépare les lignes par des point-
virgules
x1 =
1 2 3
4 5 6
7 8 9
>> x2= [1 :1 :3 ; 4 :1 :6 ; 7 :1 :9] % créer une matrice x2 par définir des vecteurs
x2 =
1 2 3
4 5 6
7 8 9
>> A= x1(2,3) % élément se trouvant à la ligne 2, colonne 3 de la matrice x1
A=
6
>> A1=x1(:,2) % la colonne 2 de la matrice x1
A1 =
2
5
8
>> A2=x1(2,:) % la ligne 2 de la matrice x1
A2 =
4 5 6
b) Opérations matricielles
>> H= inv (x1) % donner la matrice inverse de x1
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.541976e-018.
H=
1.0e+016 *
-0.4504 0.9007 -0.4504
0.9007 -1.8014 0.9007
-0.4504 0.9007 -0.4504
>> Z= det (x1) % calculer le déterminant de la matrice x1
Z=
c) Opérations entre matrices
Sommations
>> y1= [0 0 1 ; 3 3 4 ; 1 1 0] % générer une matrice y1
y1 =
0 0 1
3 3 4
1 1 0
>> P= x1+y1
P=
1 2 4
7 8 10
8 9 9
>> R= y1+x1 % la somme matricielle est commutative
R=
1 2 4
7 8 10
8 9 9
Soustractions
>> Y= y1-x1 % soustraire les valeurs de la matrice y1 des valeurs de la matrice x1
Y=
-1 -2 -2
-1 -2 -2
-6 -7 -9
Multiplications
>> x1 % rappeler la définition de x1
x1 =
1 2 3
4 5 6
7 8 9
>> z1= [1 :1 :3 ; 11 :1 :13]
z1 =
1 2 3
11 12 13
>> x1*z1 % x1 et z1 deux matrices de dimensions différentes
??? Error using ==> mtimes
Inner matrix dimensions must agree. la solution est :
>> D= x1*z1'
D=
14 74
32 182
50 290
>> a1=[1 0 -1; 3 2 1; 4 4 4]
a1 =
1 0 -1
3 2 1
4 4 4
>> f1=[0 0 1; 3 3 4; 1 1 0]
f1 =
0 0 1
3 3 4
1 1 0
>> pro1=a1*f1
pro1 =
-1 -1 1
7 7 11
16 16 20
>> pro2=f1*a1 % le produit matriciel des deux matrices n’est pas commutatif
pro2 =
4 4 4
28 22 16
4 2 0
Multiplication élément par élément :
>> x1
x1 =
1 2 3
4 5 6
7 8 9
>> y1
y1 =
0 0 1
3 3 4
1 1 0
>> K= x1.*y1 % multiplication point à point : multiplier membre à membre chaque élément
du vecteur x1 par chaque élément du vecteur y1
K=
0 0 3
12 15 24
7 8 0
Cl. L’opération x1*z1’ est la multiplication matricielle des matrices x1 et z1’ de dimensions
respectives M.N et N.P, tandis que x1.*y1 est la multiplication élément par élément de 2
matrices de dimensions identiques.
>> G= x1^2
G=
30 36 42
66 81 96
102 126 150
>> J= x1.^2
J=
1 4 9
16 25 36
49 64 81
Divisions
>> z1
z1 =
1 2 3
11 12 13
>> z2= [4 5 6 ; 14 15 16]
z2 =
4 5 6
14 15 16
>> z1/z2
ans =
1.3000 -0.3000
0.3000 0.7000
>> z1\z2
ans =
-0.5000 -1.0000 -1.5000
0 0 0
1.5000 2.0000 2.5000
>> X= A\B % donne la solution de A*X=B = équivalent à inv(A)*B
>> X= B/A % donne la solution de X*A=B = équivalent à B*inv(A)
Division élément par élément
>> z1./z2 % chaque élément de z1 est divisé par l’élément équivalent de z2
ans =
0.2500 0.4000 0.5000
0.7857 0.8000 0.8125
>> z1.\z2 % chaque élément de z2 est divisé par l’élément équivalent de z1
ans =
4.0000 2.5000 2.0000
1.2727 1.2500 1.2308
d) Matrices particulières
>> N= ones (3,2) % créer une matrice de 3 lignes et 2 colonnes dont les éléments sont égales
à1
N=
1 1
1 1
1 1
>> U= zeros(2,5) % créer une matrice de 2 lignes et 5 colonnes dont les éléments sont égales
à0
U=
0 0 0 0 0
0 0 0 0 0
>> M= eye(4) % créer une matrice d’identité d’ordre 4
M=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> M1= eye(2,4)
M1 =
1 0 0 0
0 1 0 0
>> D= diag([1 :4]) % créer une matrice D dont les éléments de diagonale sont les éléments
du vecteur [1 :4]
D=
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
>> Q= rand (3,2) % créer une matrice de 3 lignes et 2 colonnes dont les éléments sont de
valeurs aléatoires
Q=
0.8147 0.9134
0.9058 0.6324
0.1270 0.0975
Ones (n,m) : Matrice de taille n*m ne contenant que des 1.
zeros (n,m) : Matrice de taille n*m ne contenant que des 0.
rand (n,m) : Matrice de taille n £ m contenant des nombres aléatoires entre 0 et 1.
e) Caractéristiques des matrices
>> x1
x1 =
1 2 3
4 5 6
7 8 9
>> [m,n]= size(x1) % donner la dimension de la matrice
m=
n=
3
>> length(x1) % donner la longueur
ans =
3
f) Manipulation de matrices et sous-matrices
>> A1= [1 2 3 ; 4 5 6 ; 7 8 9]
A1 =
1 2 3
4 5 6
7 8 9
>> A2= [1, 2, 3 ; 4, 5, 6 ; 7, 8, 9]
A2 =
1 2 3
4 5 6
7 8 9
>> A2 (3, 1)=21 ; % modifier la valeur de l’élément se trouvant à la ligne 3, colonne 1 par 21
>> A2
A2 =
1 2 3
4 5 6
21 8 9
>> C1= [A1, A2] % afficher les deux matrices A1 et A2 sur la même ligne
C1 =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 21 8 9
>> C2= [A1 ; A2] % afficher les deux matrices A1 et A2 l’une au dessous de l’autre
C2 =
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
21 8 9
>> xy= [1:3, 5:7, 9:11]
xy =
1 2 3 5 6 7 9 10 11
>> xy= [1:3 ; 5 :7 ; 9 :11]
xy =
1 2 3
5 6 7
9 10 11
Extraction de vecteurs et sous matrices :
>> xy( :, 2)
ans =
2
6
10
>> xy(:,1:2)
ans =
1 2
5 6
9 10
Etudier le résultat des commandes suivantes, qui extraient des éléments différents de la
matrice A1 définie préalablement.
>> D1= A1(2,1)
D1 =
>> E1= A1 ([1,2], [2,3])
E1 =
2 3
5 6
>> E2= A1 ( : , 2)
E2 =
2
5
8
>> G1= A1 (2, :)
G1 =
4 5 6
>> H1= A1([3, 1], :)
H1 =
7 8 9
1 2 3
>> A3= [1 2 3 ; 4 5 6 ; 7 8 9]
A3 =
1 2 3
4 5 6
7 8 9
>> flipud(A3) % flip up-down
ans =
7 8 9
4 5 6
1 2 3
>> fliplr(A3) % flip left-right
ans =
3 2 1
6 5 4
9 8 7
3. Affichage graphique
Etant donné deux vecteurs de même taille, x et y, la fonction plot(x, y) trace le graphe de y en
fonction de x : y= f(x).
>> x= 0 :0.1 :2*pi ;
>> y= sin(x) ;
>> plot (x, y) % tracer y=f(x)
>> hold on % tracer plusieurs courbes sur le même graphe
>> y1= cos(x);
>> plot (x, y1)
>> hold off % désactiver la commande hold on
>> plot(x,y1)
>> x= 0:0.1:2*pi;
>> sin (x);
>> plot (x,sin(x),'r --') % tracer sin(x) en trait pointillé rouge
>> subplot (4, 2, 4) % diviser la fênêtre en 4 lignes et 2 colonnes et placer la courbe sin(x)
dans la figure N°4
>> plot (x, sin(x))
Graphique 3D :
>> t= -3*pi : pi/10 : 3*pi ;
>> x= 4*sin(t) ; y= cos(t) ; z= 2*t ;
>> plot3(x, y, z) % représenter la courbe en trois dimensions
>> title( 'hélice circulaire') % ajouter un titre pour la figure
>> xlabel ('x'), ylabel ('y'), zlabel ('z'),
>> grid
4. Fichiers de commande et fonctions
Fichier de commandes (avec l’extension .m) : fichier édité à partir de votre éditeur préféré,
Contenant une suite de commandes appelées en tapant le nom du fichier (sans extension).
a) Utilisation de boucles et contrôles for, while, if
a= [0 -1 4 -6 9 -7]
b= []
c= []
for i=1 : length(a)
if a(i) <0
b= [b a(i)]
else
c= [c a(i)]
end
end
le résultat est :
a=
0 -1 4 -6 9 -7
b=
[]
c=
[]
c=
b=
-1
c=
0 4
b=
-1 -6
c=
0 4 9
b=
-1 -6 -7
b) Fonctions avec variables d’entrée/sortie
Sous le fichier fact.m :
function f= fact(n)
f=1;
n=4;
for i=1:n
f= f*i ;
end
end
le résultat est :
ans =
24