Introduction à Matlab
Présentation de Matlab
Présentation de Matlab
Qu’est-ce que Matlab ?
Présentation de Matlab
Présentation de l’interface
4
Présentation de Matlab
Présentation de l’interface
.
Les Préférences pour changer le formatage classique et autre
5
Présentation de Matlab
Présentation de l’interface
Il faudra prendre en compte le fait que les fichiers doivent être enregistrer dans un dossier de travail afin que
la compilation puisse réussir. Il ne faut les enregistrer dans un dossier contenant les fichiers système
6
Les commandes de base
en Matlab
Les commandes de base en Matlab
Les opérations de base
>> 3+6
ans =
8
Les commandes de base en Matlab
Les opérations de base
Symbole Description Exemple
+-*/ Les opérations de base en mathématiques (addition, 7+9
soustraction, multiplication et division) 3/4
pi La constante Pi pi/3
cos sin tan Les fonctions trigonométriques usuelles cos(3*pi/2)
log exp Le logarithme népérien et l’exponentielle exp(3)
sqrt La racine carrée sqrt(5)
^ La puissance 4^7
abs La valeur absolue d’un nombre réel ou le module des abs(2+1i)
nombres complexes
angle L’argument d’un nombre complexe angle(2+1i)
>> sqrt((3+4)*cos(5*pi/7))*exp(2^4)
9
Les commandes de base en Matlab
Les nombres réels
>> 2.7 * 3.9
ans =
10.5300
10
Les commandes de base en Matlab
Les variables (simples) en Matlab
>> x = 4
11
Les commandes de base en Matlab
Les variables (simples) en Matlab
>> y = x+2
12
Les commandes de base en Matlab
Les variables (simples) en Matlab
>> disp(y)
6
>> y
y =
6
13
Les commandes de base en Matlab
Les variables (simples) en Matlab
>> x = input('Entrez une valeur : ');
Entrez une valeur : 9
14
Les matrices dans Matlab
Les matrices dans Matlab
Matlab et les matrices
Les matrices dans Matlab
Déclarer des matrices dans Matlab
>> A = [1 2 3; 4 5 6; 7 8.5 9; 10 11.5 12]
17
Les matrices dans Matlab
Déclarer des matrices dans Matlab
>> B = [4.2 7.6 8.2; 4.1 0.5 0]
4.2 7.6 8.2
4.1 0.5 0
>> C = [5.7 0.2 6.2 5.1; 7.1 2.4 8.4; 1.2 0.4 8.4 6.4]
18
Les matrices dans Matlab
Déclarer des matrices dans Matlab
.
>> D = [4 2 9 4 2]
4 2 9 4 2
. 3,5
>> E = [3.5 ; 7; 9; 8; 0] 7
9
8
19
0
Les matrices dans Matlab
Déclarer des matrices dans Matlab
>> A = [1 2 3; 4 5 6; 7 8.5 9; 10 11.5 12]
>> A = [4.2 7.6 8.2; 4.1 0.5 0]
>> A = 3
20
Les matrices dans Matlab
Accéder aux éléments des matrices
>> A(3,2)
>> A = [5.7 0.2 6.2 5.1; 8.7 7.1 2.4 8.4; 1.2 0.4 8.2 6.4]
>> y = A(2,4)
21
Les matrices dans Matlab
Accéder aux éléments des matrices
>> A = [5.7 0.2 6.2 5.1; 8.7 7.1 2.4 8.4; 1.2 0.4 8.2 6.4]
1 4 107
5.7 0.2 5.1 6.2
2 5 8 11
8.7 7.1 2.4 8.4
3 6 9 12
1.2 0.4 8.2 6.4
>> A(5)
ans =
34
7.1000
Les matrices dans Matlab
Accéder aux éléments des matrices
>> B = A(2:4,4:5)
5.7 0.2 6.2 5.1 3
8.7 7.1 2.4 8.4 6.1 8.4 6.1
1.2 0.4 8.2 6.4 2.7 6.4 2.7
2.3 6.7 6.5 5.2 10 5.2 10
2.1 1.8 0.6 7.2 8.2
23
Les matrices dans Matlab
Accéder aux éléments des matrices
>> B = A(2:4,:)
5.7 0.2 6.2 5.1 3
8.7 7.1 2.4 8.4 6.1 8.7 7.1 2.4 8.4 6.1
1.2 0.4 8.2 6.4 2.7 1.2 0.4 8.2 6.4 2.7
2.3 6.7 6.5 5.2 10 2.3 6.7 6.5 5.2 10
2.1 1.8 0.6 7.2 8.2
24
Les matrices dans Matlab
Taille d’une matrice
5.7 0.2 6.2 5.1
8.7 7.1 2.4 8.4
1.2 0.4 8.2 6.4
2.3 6.7 6.5 5.2
2.1 1.8 0.6 7.2
>> s = size(A)
5 4
25
Les matrices dans Matlab
Taille d’une matrice
5.7 0.2 6.2 5.1
8.7 7.1 2.4 8.4
1.2 0.4 8.2 6.4
2.3 6.7 6.5 5.2
2.1 1.8 0.6 7.2
>> numel(A)
ans =
20
Vous pouvez utiliser length pour déterminer le nombre d’élément lorsqu’il s’agit
d’un vecteur et non une matrice
26
Les matrices dans Matlab
Opérations de base sur les matrices
Symbole Description Exemple
+-* Les opérations de base (addition, soustraction, produit matriciel). A+B
Les tailles des matrices doivent être compatibles A*B
^ La puissance matricielle (itération du produit matriciel) A^3
’ Transposée d’une matrice (pour les nombres complexes, il faut A’
mettre un point (.) avant ‘)
inv L’inversion d’une matrice (si son inverse existe) inv(A)
Symbole Description Exemple
+-*/ Réalise l’opération entre un scalaire et chaque élément de la matrice. 5.4*A
.* Réalise la multiplication terme à terme de deux matrices de même A.*B
taille.
.^ Met à une certaine puissance chaque élément de la matrice A.^3
39
Les matrices dans Matlab
Opérations de base sur les matrices
4 25 36
2 9 49
2 5 6
1.4 3 7
28
Les matrices dans Matlab
Opérations avancées sur les matrices
2.6 3.9 10
1.0 -3 3.2
16.5
3.6 0.9 13.2 1.2
29
Les matrices dans Matlab
Opérations avancées sur les matrices
3 2 1 8
4 1 3 6
2 2 0 5
>> b = sum(A,2)
14
14
30
Les matrices dans Matlab
Opérations avancées sur les matrices
>> b = sum(A,1) 3 2 1 8
3 2 1 8
31
Les matrices dans Matlab
Opérations avancées sur les matrices
>> b = sum(A,1)
>> c = sum(b,2)
>> c = sum(sum(A,2),1)
32
Les matrices dans Matlab
Opérations avancées sur les matrices
2.6 3.9 10
1.0 -3 3.2
10
2.6 3.9 10 3.2
33
Les matrices dans Matlab
Filtrage de matrices
8.7 7.1 2.4 8.4 6.1
1.2 0.4 8.2 6.4 2.7
2.3 6.7 6.5 5.2 10
1
8
10
15
34
Les matrices dans Matlab
Filtrage de matrices
8.7 7.1 2.4 8.4 6.1
1.2 0.4 8.2 6.4 2.7
2.3 6.7 6.5 5.2 10
>> l = find(A>8)
>> A(l) = 0
0 7.1 2.4 0 6.1
1.2 0.4 0 6.4 2.7
2.3 6.7 6.5 5.2 0
>> A(find(A>8))=0
35
Les matrices dans Matlab
Filtrage de matrices
>> k = find(A<1)
>> A(k) = A(k)+1
36
Les matrices dans Matlab
Filtrage de matrices
Symbole Description Exemple
> < Les comparaisons de base (supérieur, inférieur, supérieur ou égal, A >= 3
>= <= inférieur ou égal) A<5
== L’égalité A == 7.2
~= L’inégalité A ~= 8
Symbole Description Exemple
& Combine deux critères avec un et logique. (A > 3) & (A<8)
| Combine deux critères avec un ou logique. (A > 6) | (A < 3)
~ Inverse un critère ~((A > 3) & (A < 4))
37
Les matrices dans Matlab
Filtrage de matrices
>> k = find(A<0)
>> A(k) = -A(k)
Ces deux lignes remplacent ce que fait la fonction abs
38
Les matrices dans Matlab
Filtrage de matrices
8.7 7.1 2.4 8.4 6.1
1.2 0.4 8.2 6.4 2.7
2.3 6.7 6.5 5.2 10
>> B = (A < 3)
0 0 1 0 0
1 1 0 0 1
1 0 0 0 0
39
Les matrices dans Matlab
Filtrage de matrices
>> k = (A<0)
>> k = -2*k + 1
>> A = A.*k
40
Les matrices dans Matlab
Générer de nouvelles matrices
Fonction Description Exemple
rand(n,m) Génère une matrice remplie de nombre aléatoires entre 0 et A = rand(3,5)
1, de n lignes et m colonnes.
ones(n,m) Génère une matrice remplie de 1, de n lignes et m colonnes A = ones(4,4)
zeros(n,m) Génère une matrice remplie de 0, de n lignes et m colonnes A = zeros(1,3)
41
Les matrices dans Matlab
Concaténation de matrices
4 5 6 4 3
7 1 1 1 2
2 8 7 5 8 5 4 4
>> D = [A B]
>> E = [A ; C]
4 5 6 4 3 4 5 6
7 1 1
7 1 1 1 2
2 8 7
2 8 7 5 8 42
5 4 4
Le mot clef if – exécuter
du code sous condition
Le mot clef i
Le mot clef if
Le mot clef if
Un premier programme avec if
x=input(‘Entrez une valeur svp’);
y=2;
if x<4
y=0;
end
.
.
45
Le mot clef if
Syntaxe du if
//Bloc de code 0
if <condition 1>
//Bloc de Code 1
end
//Bloc de Code 2
Notez la présence du mot clé end pour fermer le bloc if
46
Le mot clef if
Un exemple
x = input(‘Entrez une valeur : ‘);
if x<0
x = -x;
end
disp(x)
47
Le mot clef if
L’écriture de conditions
Symbole Description Exemple
&& Combine deux conditions avec un et logique. (A > 3) & (A<8)
|| Combine deux conditions avec un ou logique. (A > 6) | (A < 3)
~ Inverse une condition ~((A > 3) & (A < 4))
x = input(‘Entrez une valeur : ‘);
y = input(‘Entrez une autre valeur : ‘);
if x>0 && y>0
disp(‘Les deux valeur entrées sont positives’)
end
48
Le mot clef i
Le mot clef elseif
Le mot clef if
Un premier programme avec elseif
x=input(‘Entrez une valeur svp’);
y=2;
if x<4
y=0;
elseif x>9
y=1;
end
.
.
.
50
Le mot clef if
Un second programme avec elseif
a=input(‘Entrez votre age’);
if a>=100
disp(‘Vous êtes assez âgé’);
elseif a>=18
disp(‘Vous êtes majeur’);
elseif a>=16
disp(‘Vous pouvez conduire (accompagné)’);
end
.
.
.
51
Le mot clef if
Un second programme avec elseif
a=input(‘Entrez votre age’); a=input(‘Entrez votre age’);
if a>=100 if a>=100
disp(‘Vous êtes assez âgé’); disp(‘Vous êtes assez âgé’);
elseif a>=18 endif
disp(‘Vous êtes majeur’);
elseif a>=16 if a>=18
disp(‘Vous pouvez conduire’); disp(‘Vous êtes majeur’);
end endif
if a>=16
disp(‘Vous pouvez conduire’);
end
52
Le mot clef if
Syntaxe du if/elseif
//Bloc de code 0
if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
end
//Bloc de Code n
53
Le mot clef if
Syntaxe du if/elseif
//Bloc de code 0
if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
end
//Bloc de Code n
54
Le mot clef if
Syntaxe du if/elseif
literature
a=input(‘Entrez votre note de contrôle
Matlab’);
if a<14
disp(‘Vous n’êtes pas très bon’);
elseif a>=15
disp(‘Pas mal’);
elseif a>18
disp(‘Vous pourrez passer en
deuxième année’);
elseif a<4
disp(‘Il y a des places de libres
en literature...’);
55
Le mot clef if
Se passer du elseif
a = input(‘Entrez votre age : ‘);
a = input(‘Entrez votre age : ‘); if a>=100
disp(‘Vous êtes assez âgé’);
if a>=100 end
disp(‘Vous êtes assez âgé’);
elseif a>=18 if a>=18
disp(‘Vous êtes majeur’); disp(‘Vous êtes majeur’);
elseif a>=16 end
disp(‘Vous pouvez conduire’);
end if a>=16
disp(‘Vous pouvez conduire’);
end
56
Le mot clef if
Se passer du elseif
a = input(‘Entrez votre age : ‘);
a = input(‘Entrez votre age : ‘); if a>=100
disp(‘Vous êtes assez âgé’);
if a>=100 end
disp(‘Vous êtes assez âgé’);
elseif a>=18 if ~(a>=100) && a>=18
disp(‘Vous êtes majeur’); disp(‘Vous êtes majeur’);
elseif a>=16 end
disp(‘Vous pouvez conduire’);
end if ~(a>=100) && ~(a>=18) && a>=16
disp(‘Vous pouvez conduire’);
end
57
Le mot clef i
Le mot clef else
Le mot clef if
Un exemple
x = input('Entrez une valeur : ');
y = input('Entrez une valeur : ');
z = input('Entrez votre choix d operation : ');
if z==1
disp(x+y);
elseif z==2
disp(x*y);
elseif z==3
disp(x-y);
elseif z==4
disp(x/y);
end
59
Le mot clef if
Un exemple
x = input('Entrez une valeur : ');
y = input('Entrez une valeur : ');
z = input('Entrez votre choix d operation : ');
if z==1
disp(x+y);
elseif z==2
disp(x*y);
elseif z==3
disp(x-y);
elseif z==4
disp(x/y);
else
disp(‘Mauvais choix’);
end
60
Le mot clef if
Un second exemple avec else
a=input(‘Entrez votre age’);
if a>=100
disp(‘Vous êtes assez âgé’);
elseif a>=18
disp(‘Vous êtes majeur’);
elseif a>=16
disp(‘Vous pouvez conduire (accompagné)’);
else
disp(‘Vous êtes jeune’);
end
.
.
.
. 73
Le mot clef if
Syntaxe du if/elseif/else
//Bloc de code 0
if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
else ...
//Bloc de code n
end
//Bloc de Code n+1
62
Le mot clef if
Syntaxe du if/elseif/else
//Bloc de code 0
if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
else ...
//Bloc de code n
end
//Bloc de Code n+1
63
Le mot clef if
Exercice
x = input(‘Entrez une valeur ‘);
if x==0
disp(‘x est nul’);
elseif x>0
disp(‘x est positif’);
else x<0
disp(‘x est négatif’);
end
décrite après
64
Le mot clef if
Exercice
x = input(‘Entrez une valeur ‘);
if x==0
disp(‘x est nul’);
else
disp(‘x est négatif’);
elseif x>0
disp(‘x est positif’);
end
65
Le mot clef if
Exercice
x = input(‘Entrez une valeur ‘);
if x==0
disp(‘x est nul’);
else
disp(‘x est négatif’);
else
disp(‘x est positif’);
end
66
Le mot clef if
Exercice
x = input(‘Entrez une valeur ‘);
if x==0
disp(‘x est nul’);
elseif x<0
disp(‘x est négatif’);
elseif
disp(‘x est positif’);
end
67
Le mot clef if
Exercice
x = input(‘Entrez une valeur ‘);
if x==0
disp(‘x est nul’);
if x<0
disp(‘x est négatif’);
if x>0
disp(‘x est positif’);
end
68
Le mot clef if
Exercice
x = input(‘Entrez une valeur ‘);
y = input(‘Entrez une valeur ‘);
if x>=0
if y >=0
disp(‘x et y sont positifs’);
else
disp(‘x est positif et y est négatif’);
end
else
if y >=0
disp(‘x est négatif et y est positif’);
else
disp(‘x et y sont négatifs’);
end
end
69
Le mot clef if
La fonction modulo
>> a = mod(23,7);
>> disp(a)
2
70
Le mot clef if
La fonction modulo
a = input('Entrez une valeur : ');
if mod(a,7) == 0
disp('a est divisible par 7');
else
disp('a n est pas divisible par 7');
end
if (a%7 == 0)
{ ... }
71
Le mot clef if
La fonction modulo
a = input('Entrez une valeur : ');
if mod(a,2) == 0
disp('a est un nombre pair’);
else
disp('a est un nombre impair’);
end
72
Le bloc
Conclusion
Les boucles
Les boucles
Les boucles
88
Les boucles
Première utilisation de la boucle for
>> v = rand(1,5);
>> disp(v);
0.8003 0.1419 0.4218 0.9157 0.7922
>> for k = v
>> disp('La valeur de k est ‘)
>> disp(k)
>> end
La valeur de k est 0.8003
La valeur de k est 0.1419
La valeur de k est 0.4218
La valeur de k est 0.9157
La valeur de k est 0.7922 89
Les boucles
Un autre exemple de boucle for
>> for i = 1:8
>> disp(i);
>> end
1
2
3
4
5
6
7
8
77
Les boucles
Un autre exemple avec une matrice
>> A = rand(3,2);
>> disp(A);
0.8147 0.9134
0.9058 0.6324
0.1270 0.0975
>> for i = A
>> disp(‘La valeur de i est ‘)
>> disp(i);
>> end
La valeur de i est
0.8147
0.9058
0.1270
La valeur de i est
0.9134
0.6324
0.0975
78
Les boucles
Syntaxe du for
//Bloc de code 0
for <variable> = <matrice>
//Bloc de Code 1
end
//Bloc de Code 2
79
Les boucles
Un exemple
v = rand(1,100000);
s = 0;
for i = v
s = s+i;
end
disp(s);
s = sum(v);
Les boucles
Temps d’exécution
Taille du vecteur Temps d’exécution avec for Temps d’exécution sans for
1*106 0,92s 1,1ms
2*106 1,65s 1,6ms
3*106 2,48s 3,6ms
4*106 3,20s 3,0ms
5*106 3,96s 3,7ms
6*106 4,90s 6,7ms
7*106 5,63s 5,0ms
8*106 6,46s 5,8ms
9*106 7,33s 6,7ms
81
Les boucles
Syntaxe du while
//Bloc de code 0
while <condition 1>
//Bloc de Code 1
end
//Bloc de Code 2
82
Les boucles
Syntaxe du while
//Bloc de code 0
while <condition 1>
//Bloc de Code 1
end
//Bloc de Code 2
83
Les boucles
Première utilisation de la boucle while
a = input('Entrez une valeur entiere : ');
s=1;
while a>1
s = s*a;
a = a-1;
end
disp(s);
84
Les boucles
Seconde utilisation de la boucle while
a = input('Entrez une valeur positive : ');
while a<0
a = input('Entrez une valeur positive : ');
end
disp(a);
85
Les boucles
Troisième utilisation de la boucle while
a = input('Entrez une valeur : ');
b = input('Entrez une valeur : ');
n = min(a,b);
while ~(mod(a,n)==0 && mod(b,n)==0)
n=n-1;
end
disp(n)
86
Les boucles
Quelle boucle utiliser ?
Programme for ou while ? Explications
factorielle(a) for/vectorisé La boucle se répétera (a-1) fois
nombre positif while On ne sait pas combien de fois l’utilisateur va saisir
un nombre négatif
pgcd(a,b) Les deux Soit on teste tous les entiers entre 1 et min(a,b), soit
on teste ceux entre a et 1 jusqu’à en trouver un qui
divise.
87
Les boucles
Factorielle avec for
a = input('Entrez une valeur entiere : ');
s=1;
for i = 1:a
s = s*i;
end
disp(s);
Améliorer le
a = input('Entrez une valeur : ');
s = prod(1:a);
disp(s);
88
Les boucles
Conclusion