Académique Documents
Professionnel Documents
Culture Documents
1- Premier script
4- Boucle FOR
5- Boucle WHILE
6- IF ELSE ELSEIF
7- BREAK
8- Exemples de scripts
o Rsolution d'une quation du 2me degr (dans R, espace des
nombres rels)
o Rsolution d'une quation du 2me degr (dans C, espace des
nombres complexes)
o Calcul de la factorielle n!
o Diagrammes de Bode d'un filtre analogique H(p)
o Diagrammes de Bode d'un filtre numrique H(z)
Convention de couleurs :
Affichage de nombres :
>> a=15;
>> disp(a)
15
>> b=[1 8 9];
>> disp(b)
189
>> disp([17 -25.36 sqrt(6)])
17.0000 -25.3600 2.4495
>> disp([17 ; -25.36 ; sqrt(6)])
17.0000
-25.3600
2.4495
>> a=12;
>> disp([17 a sqrt(a+13)])
17 12 5
Affichage de textes :
>> c='Bonjour';
>> disp(c)
Bonjour
>> disp('Bonjour')
Bonjour
>> disp(['Pierre' 'Paul' 'Jacques'])
PierrePaulJacques
La commande BLANKS(n) affiche n espaces :
>> disp(['Pierre' blanks(1) 'Paul' blanks(1) 'Jacques'])
Pierre Paul Jacques
Saisie de nombres :
% script2.m
disp('Bonjour!');
>> script2
Bonjour!
Taper la valeur de R min : 20
Taper la valeur de R max : 100
R min =20
R max =100
Au revoir.
Saisie de textes :
% scrip2_1.m
nom=input('Taper votre nom : ','s');
prenom=input('Taper votre prnom : ','s');
age=input('Taper votre ge : ');
disp([nom blanks(1) prenom]);
disp(['Age : ' num2str(age)]);
>> scrip2_1
Taper votre nom : Dupont
4- Boucle FOR
Cette instruction permet de rpter un bloc d'instructions, un nombre dtermin de
fois.
Synthaxe :
for expression ,
bloc d'instructions ;
end
Exemples :
% script3.m
for i=1:5,
disp([i i*i]);
end
>> script3
11
24
39
4 16
5 25
% scrip3_1.m
n=input('Nombre de boucles = ? ');
for i=1:n,
disp(i);
end
>> scrip3_1
Nombre de boucles = ? 4
1
2
3
4
% script4.m
for i=1:2:10,
disp(i);
end
>> script4
1
3
5
7
9
% script5.m
for i=1:3,
for j=1:6,
a(i,j)=i+10*j ;
end
end
disp(a);
>> script5
11 21 31 41 51 61
12 22 32 42 52 62
13 23 33 43 53 63
5- Boucle WHILE
Synthaxe :
while condition ,
bloc d'instructions ;
end
Si la condition est vraie, le bloc d'instructions est excut, puis le programme teste
nouveau la condition ...
Oprateurs de comparaison :
==
>
<
>=
<=
~=
gal
suprieur
infrieur
suprieur
ou gal
infrieur
ou gal
diffrent
Exemples :
% script6.m
n=0 ;
while (n<10),
n=n+1;
disp(n);
end
1
2
3
4
5
6
7
8
9
10
&
|
~
Oprateurs logiques :
ET logique
(AND)
OU logique
(OR)
NON logique
% script7.m
note=-1;
while ((note<0) | (note>20)),
note=input('taper la note (0 20) : ');
end
disp(['note = ' num2str(note)]);
La boucle est excute tant que la note est infrieure 0 ou bien suprieure 20.
Cela permet de saisir une note forcment comprise entre 0 et 20 :
>> script7
taper la note (0 20) : 30
taper la note (0 20) : 17
note =17
IF
if condition ,
bloc d'instructions ;
end
IF ELSE
if condition ,
bloc d'instructions 1 ;
else
bloc d'instructions 2 ;
end
IF ELSE IF
if condition1 ,
bloc d'instructions 1 ;
else if condition2 ,
bloc d'instructions 2 ;
end
% script8.m
note=-1;
while ((note<0) | (note>20)),
note=input('Taper la note (0 20) : ');
if (note<0),
disp ('Valeur invalide (note < 0)');
end
if (note>20),
disp ('Valeur invalide (note > 20)');
end
end
disp('note = ');
disp(note);
>> script8
Taper la note (0 20) : -5
Valeur invalide (note < 0)
Taper la note (0 20) : 25
Valeur invalide (note > 20)
Taper la note (0 20) : 12
note =
12
7- Instruction BREAK
L'instruction BREAK permet de sortir d'une boucle FOR ou d'une boucle WHILE.
% script11.m
for i=1:10,
if i==5,
break;
end
disp(i);
end
>> script11
1
2
3
4
% script12.m
i=0;
while 1,
i=i+1;
if i>5,
break;
end
disp(i);
end
La condition while 1 est toujours vraie.
Le seul moyen de sortir de la boucle est d'utiliser l'instruction BREAK.
>> script12
1
2
3
4
5
8- Exemples de scripts
8-1- Rsolution d'une quation du 2me degr (dans R)
8-2- Rsolution d'une quation du 2me degr (dans C)
8-3- Calcul de la factorielle n!
8-4- Diagrammes de Bode d'un filtre analogique H(p)
8-5- Diagrammes de Bode d'un filtre numrique H(z)
delta=b*b-4*a*c;
if (delta<0),
disp('Pas de racine relle.');
end
if (delta==0),
disp('Une racine double :');
racine=-b/(2*a);
disp(racine);
end
if (delta>0),
disp('Deux racines :');
racine1=(-b+sqrt(delta))/(2*a);
racine2=(-b-sqrt(delta))/(2*a);
disp(racine1);
disp(racine2);
end
choix=input('Un autre calcul (O/N)? ','s');
end
>> trinome
Calcul dans R des racines de ax+bx+c=0
a=? 0
Valeur non valide !
a=? 1
b=? 2.36
c=? -4.5
Deux racines :
1.2474
-3.6074
Un autre calcul (O/N)? n
>> trinome1
Calcul dans C des racines de ax+bx+c=0
a=? 2+i
b=? -5
c=? 1.5-5i
Racines :
0.8329 + 0.6005i
-0.2079 - 0.6005i
>> facto
Calcul de la factorielle
n = ? 134
134!=
1.992942746161518e+228
Exemple :
Soit un filtre passe-bas du deuxime ordre dont voici la fonction de transfert :
>> bode
Ce script Matlab permet de tracer les diagrammes de Bode.
Il ncessite le fichier trans.m (fichier de dfinition de la fonction de transfert).
Gamme de frquences : f min (en Hz)=? 100
f max (en Hz)=? 100000
Nombre de points =? 1000
Figure 1 -> gain en fonction de la frquence
Figure 2 -> dphasage en fonction de la frquence
Tlcharger le script
Complments
>> bodenum
Ce script Matlab permet de tracer les diagrammes de Bode d'un filtre
numrique.
Il ncessite le fichier transnum.m (fichier de dfinition de la fonction de
transfert en z).
Gamme de frquences :
Fe : frquence d'chantillonnage
f min / Fe =? 0.001
f max / Fe =? 0.5
Nombre de points =? 1000
Figure 1 -> Diagramme de Bode du gain
Figure 2 -> Diagramme de Bode du dphasage
Figure 3 -> Amplification en fonction de la frquence
Figure 4 -> Dphasage en fonction de la frquence
Tlcharger le script