Académique Documents
Professionnel Documents
Culture Documents
Scripts et fonctions
Instructions de contrle
Introduction
Il est possible d'enregistrer une squence
d'instructions dans un fichier (appel un M-
file ) et de les faire excuter par MATLAB. Un
tel fichier doit obligatoirement avoir une
extension de la forme .m (d'o le nom M-file)
pour tre considr par MATLAB comme un
fichier d'instructions. On distingue 2 types de
M-file, les fichiers de scripts et les fichiers de
fonctions.
Un script est un ensemble d'instructions MATLAB
qui joue le rle de programme principal. Si le script
est crit dans le fichier de nom nom.m on l'excute
dans la fentre MATLAB en tapant nom. Mme si
l'on ne souhaite pas proprement parler crire de
programme, utiliser un script est trs utile. Il est en
effet beaucoup plus simple de modifier des
instructions dans un fichier l'aide d'un diteur de
texte que de retaper un ensemble d'instructions
MATLAB dans la fentre de commande.
Les fichiers de fonctions ont deux rles. Ils
permettent l'utilisateur de dfinir des
fonctions qui ne figurent pas parmi les
fonctions incorpores de MATLAB (<< built-in
functions >>) et de les utiliser de la mme
manire que ces dernires (ces fonctions sont
nommes fonctions utilisateur).
On dfinit la fonction fonc de la manire
suivante:
function [vars1, ..., varsm] = fonc(var_1, ...,
varn)
squence d'instructions
o
vars1, ..., varsm sont les variables de sortie
de la fonction;
var1, ..., varn sont les variables d'entre de
la fonction;
squence d'instructions est le corps de la
fonction.
Le fichier doit imprativement commencer par le
mot-cl function. Suit entre crochets les variables
de sortie de la fonction, le symbole =, le nom de la
fonction et enfin les variables d'entre entre
parenthses. Si la fonction ne possde qu'une
seule variable de sortie, les crochets sont inutiles.
Il est impratif que la fonction ayant pour nom
fonc soit enregistre dans un fichier de nom
fonc.m sans quoi cette fonction ne sera pas <<
visible >> par MATLAB.
function [r,q] = modulo(a,n)
q = floor(a./n);
r = a - n*q;
r=
q=
>> modulo(10,5)
ans =
>>
Il n'y a pas de mot-cl (par exemple end) pour indiquer la
== : gal (x == y)
~ = : diffrent de (x ~ = y)
Les oprateurs logiques sont:
& : et (x & y)
| : ou (x | y)
~ : non (~ x)
Instructions de contrle
programmation.
Boucle FOR : parcours d'un intervalle
Une premire possibilit pour excuter une squence
d'instructions de manire rpte consiste effectuer une
boucle pour les valeurs d'un indice, incrment chaque
itration, variant entre deux bornes donnes. Ce processus
est mis en uvre par la boucle for. Syntaxe :
For indice=borne_inf:borne_sup
squence d'instructions
End
o
indice est une variable appele l'indice de la boucle;
borne_inf etborne_sup sont deux constantes relles
(appeles paramtres de la boucle);
squence d'instructions est le traitement effectuer pour
les valeurs d'indices variant entre borne_inf et borne_sup
avec un incrment de 1. On parle du corps de la boucle.
Interprtation :
Si borne_inf est plus petit ou gal
borne_sup, le traitement squence
d'instructions est excut borne_sup -
borne_inf fois, pour les valeurs de la
variable indice gales borne_inf,
borne_inf+1, ..., borne_sup. Si borne_inf
est strictement plus grand que borne_sup,
on passe l'instruction qui suit
immdiatement l'instruction de fin de
Voici un exemple d'utilisation d'une boucle pour
calculer n! >> n = 4;
>> nfac = 1;
>> for k = 1:n
nfac = nfac*k;
end
>> nfac
nfac =
24
>>
Boucle WHILE : tant que . . . faire
Une seconde possibilit pour excuter une
squence d'instructions de manire rpte
consiste effectuer une boucle tant qu'une
condition reste vrifie. On arrte de boucler ds
que cette condition n'est plus satisfaite. Ce
processus est mis en uvre par la boucle while.
Syntaxe :
while expression logique
squence d'instructions
end
o
expression logique est une expression dont le
rsultat peut tre vrai ou faux;
squence d'instructions est le traitement
Interprtation :