Chapitre 2
TP 2 : Initiation à MATLAB : Script,
function et boucles
2.1 Notion de SCRIPT
2.1.1 Syntaxe
Un fichier SCRIPT permet de regrouper des séries de commandes MATLAB. Cela
évite d’avoir à saisir plusieurs fois de longues suites d’instructions. A son lancement,
les instructions qu’il contient s’exécutent séquentiellement comme si elles étaient
lancées depuis l’invité de commande.
Un SCRIPT stocke ses variables dans le workspace, lequel est partagé par tous
les scripts. Ainsi, toutes les variables créées dans les SCRIPT sont visibles depuis
la command window et vice versa. Lorsque MATLAB détecte une erreur, le programme
s’arrête et un message d’erreur s’affiche à l’écran (avec le numéro de la ligne où
l’erreur est détectée).
Exemple 2.1.1 Reprenons l’exercice 4 dans un fichier SRCIPT :
fileID=fopen('[Link]','w');
fprintf(fileID, 'Le résultat obtenu est d=%f \n',d);
fclose(fileID)
Notre script peut ensuite être exécuté, soit en tapant son nom (sans l’extension)
à l’invite de commande, soit en cliquant sur le bouton "run" de l’éditeur (icône avec
un triangle vert).
texte
7
8 C HAPITRE 2. TP 2 : I NITIATION À MATLAB : S CRIPT, FUNCTION ET BOUCLES
2.2 Notion de fonction
Le principe d’une fonction est d’effectuer des opérations à partir d’une ou plu-
sieurs entrées et fournir une ou plusieurs sorties (résultat). Les variables d’entrées
sont des paramètres à spécifier en argument de la fonction, tandis que les variables
de sorties sont des valeurs quelle renvoie. Un m-file function est tout à fait semblable
aux fonctions intégrées de Matlab comme la fonction sin, cos, log, ....
Un m-file est définit comme une fonction en plaçant en tête du fichier le mot clé
function suivit de son prototype. Un prototype est de la forme
function[s1, s2, ...] = nomfonction(e1, e2, ...)
Le membre de gauche regroupe les sorties renvoyées par la fonction et les va-
riables entres parenthèses sont les entrées. Le nom du fichier doit être identique
au nom de la fonction. Ecrivons dans l’éditeur notre fonction qui permet de calculer
l’aire et le volume d’une sphère pour un rayon donné.
function V = mafonction(r)
% Calcul du Volume
V=4*pi*r∧ 3/3
L’appel de la fonction s’effectue de la même façon que pour les fonctions prédé-
finies dans le logiciel
volume=mafonction(2) % Exécution de la function
volume = 33.510
Le point fondamental qui différencie une fonction d’un script est le fait que les
variables internes soient locales, c’est-à-dire que les variables définies dans une
fonction n’existent que dans celle-ci. De plus, les variables du workspace ne sont
pas visibles depuis une fonction.
2.3 Boucles
2.3.1 Itération ou boucle for
La boucle classique (répétition d’un nombre fixé d’itérations) s’écrit sous MATLAB :
for i=1:n
instructions...
end
qui répète n fois la série d’instructions avec un compteur i variant de 1 jusqu’à n.
2.3. B OUCLES 9
Exemple 2.3.1 Calculer la somme des 10 premiers carrés d’entiers naturels :
10
X
s= k2
k=0
s=0;
for k=1:10
s=s+k∧ 2;
end
disp(s)
somme
s = 385
2.3.2 Le test if
L’instruction if permet de n’effectuer que si une certaine condition est satisfaite.
Mais à la différence de while, elle n’exécute ces commandes qu’une seule fois.
Exemple 2.3.2
% Cet exemple résout une équation du premier degré.
a=input('a\n'); b=input('b\n');
if a==0
if b==0
disp('Une infinité de solutions')
else
disp('Pas de solutions')
end
else fprintf('La solution est %f x=',-b/a)
end
2.3.3 Boucle conditionnelle while
La boucle conditionnelle while permet de répéter des instructions tant qu’une
condition donnée est vraie, si la condition devient fausse, la boucle s’arrête et le
programme passe à la suite du code. Sa syntaxe est :
10 C HAPITRE 2. TP 2 : I NITIATION À MATLAB : S CRIPT, FUNCTION ET BOUCLES
while conditions
instructions...
end
Exemple 2.3.3
% Cet exemple affiche 10 fois le caractère 'toujours dans la
boucle'
Compteur = 0;
while compteur < 10
disp('toujours dans la boucle')
compteur=compteur+1;
end
2.4 Partie pratique
Exercise 2.4.1
Écrire dans un fichier SCRIPT qui permet de calculer le factoriel de 10.
(indication : utiliser la boucle for)
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
factoriel
p = 3628800
Exercise 2.4.2
c
Soit la fonction g dÃ
finie par :
g(x) = x − ln(x) + arctan(x)
Calculer g(1) puis g(π)
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................