Académique Documents
Professionnel Documents
Culture Documents
Souvent on observe pendant l’écriture des programmes que des traitements Solution :
spécifiques sont fréquemment utilisées, c’est pourquoi au lieu de les réécrire Pour inverser les éléments d’un vecteur V on peut écrire V(end :-1 :1) donc :
plusieurs fois dans plusieurs endroits, il est préférable et plus judicieux d’écrire >> inverser = @(V) V(end:-1:1)
ces traitement une seule fois en modélisant leurs petits changements sous
Si nous désirons inverser les éléments du vecteur [5,-3, 11,-52] on écrit :
forme de paramètres. Cette organisation est appelé un sous-programme (ou >> inverser([5,-3,11,-52])
une fonction). ans =
-52 11 -3 5
L’utilisation des fonctions nous offre beaucoup d’avantages par exemple : la
diminution de la taille du programme et de l’effort pour l’écrire, la facilité de Remarque :
modification, la commodité de pister et corriger les erreurs, l’amélioration de Le symbole @ est utilisé en Matlab pour désigner une référence à une fonction
la lisibilité et de la cohérence. (un pointeur), par exemple @fun signifie une référence à la fonction fun. C’est
pourquoi quand on met @ sans ajouter un nom de fonction, Matlab génère une
Il existe trois types de fonctions en Matlab :
fonction sans nom (anonyme) définie par les arguments et l’expression écrites
1. Les fonctions inline (obsolètes et ne seront pas étudiées) par la suite.
2. Les fonctions anonymes
Par exmple :
3. Les sous programmes (ou les fonctions dans un fichier M). >> monSinus = @sin % faire une référence à la fonction sin
>> monSinus(pi/2)
1. Les fonctions anonymes : ans =
1
Les fonctions anonymes sont utilisées pour créer une fonction définie par une
petite expression. 3. Les fonctions structurées ou sous-programmes :
La création d’une fonction anonymes est définie par la syntaxe suivante :
Si la fonction ne peut pas être définie avec une seule expression, alors son
nom_fonction = @ (arg1, arg2, … ,argn) expression de la fonction comportement doit être programmé et sauvegardé dans un fichier.
>> x = racine(9)
C’était le cas avec la plupart des fonctions pré-implémentées de Matlab comme : x =
sin, cos, sqrt, diag, eye, …etc., mais nous pouvons facilement créer nos 3
propres fonctions et les ajouter à l’environnement Matlab en suivant les étapes >> x = racine(196)
suivantes : x =
1. Ouvrir la fenêtre d’Edition (avec la commande edit) 14.0000
2. Programmer le comportement de la fonction en respectant la syntaxe
suivante : Remarque :
Contrairement à un programme (ou un script), une fonction peut être
function [r1, r2, …, rn] = nom_fonction (arg1, arg2, …, argm)
utilisée dans une expression par exemple : 2*racine(9)-1.
% le corps de la fonction
. . .
r1 = . . . % la valeur retournée pour r1 Exemple 2 :
r2 = . . . % la valeur retournée pour r2 Nous allons créer une fonction qui calcule le PGCD de deux entiers a et b:
. . . >> edit Le fichier pgcd.m
rn = . . . % la valeur retournée pour rn
end % le end est facultatif function resultat = pgcd(a,b)
while a ~= b
Ou : r1, r2, …, rn sont les sorties if a > b
arg1, arg2, …, argm sont les entrées (les arguments) a = a-b;
else
3. Enregistrer le code source dans un fichier qui porte le même nom que b = b-a;
la fonction (un fichier d’extension .m) end
4. Tester la fonction (et corriger les erreurs s’il y’en a) end
resultat = a;
2. >> g = inline('x^2-1+exp(x)');
>> fplot(g,[-1,1])