Créer une fonction dans Octave
Dans cette leçon, je vais vous montrer comment créer une fonction dans Octave.
Qu'est-ce qu'une fonction ? C'est un morceau de code qui peut être exécuté lorsque nécessaire. Le code de la fonction est séparé du programme principal. Il peut être dans le même fichier ou dans un fichier différent. Les fonctions sont très importantes en programmation. Elles rendent le code d'un programme plus concis et compact.
La syntaxe générale pour définir une fonction est la suivante :
function [y1, y2, ... ] = namefunction([x1,x2,...])
code of the function
endfunction
- Les termes x1,x2... sont les variables (données d'entrée) que la fonction reçoit en entrée lors de l'appel.
- Les termes y1,y2... sont les variables (données de sortie) que la fonction renvoie en sortie.
Après avoir défini une fonction, vous pouvez l'appeler et l'exécuter à partir de différents points du programme.
Je vais vous donner un exemple pratique.
Tapez un script avec n'importe quelle opération de calcul. Par exemple avec 1 ;
1;
Notez que si vous commencez le script en tapant function..., l'interpréteur Octave le considère comme un fichier de fonction plutôt que comme un script.
Ensuite, vous devez créer une fonction nommée average() qui reçoit en entrée deux données numériques x1 et x2 et renvoie en sortie la moyenne arithmétique y.
1;
function y = average(x1,x2)
y = (x1+x2)/2;
endfunction
Maintenant, ajoutez dans le code du programme un appel à la fonction average() avec deux valeurs d'entrée, 2 et 4.
1;
function y = average(x1,x2)
y = (x1+x2)/2;
endfunction
m=average(2,4);
disp(m);
La fonction reçoit les deux valeurs d'entrée x1=2 et x2=4, calcule la moyenne y=(2+4)/2 et renvoie le résultat y=3.
Ainsi, la sortie du programme est 3.
3
Maintenant, ajoutez un deuxième appel à la fonction avec deux nombres différents.
Par exemple, 4 et 6.
1;
function y = average(x1,x2)
y = (x1+x2)/2;
endfunction
m=average(2,4);
disp(m);
m=average(4,6);
disp(m);
Dans ce cas, le programme appelle la fonction average() deux fois à partir de deux endroits différents.
- La première fois, elle envoie les valeurs 2 et 4, recevant 3 comme réponse.
- La deuxième fois, elle envoie les valeurs 4 et 6, recevant 5 comme réponse.
Ainsi, la sortie du programme est :
3
5
Une fonction peut également renvoyer plusieurs valeurs en sortie.
Par exemple, la fonction [y1,y2] = pwr(x) reçoit une valeur numérique (x) en entrée et produit deux valeurs en sortie.
1;
function [y1, y2] = pwr(x)
y1=x^2;
y2=x^3;
endfunction
[y1,y2]=pwr(2);
disp(y1);
disp(y2);
L'appel de fonction envoie x=2 comme valeur d'entrée.
La fonction pwr() calcule le carré y1=4 et le cube y2=8, renvoyant ainsi deux résultats en sortie.
4
8
Si vous souhaitez anticiper la fermeture de la fonction et le retour des résultats, utilisez l'instruction de retour (return).
Voici un exemple pratique :
1;
function [y1, y2] = pwr(x)
if x<0
y1=0
y2=0
return
endif
y1=x^2;
y2=x^3;
endfunction
[y1,y2]=pwr(-2);
disp(y1);
disp(y2);
L'instruction return termine l'exécution de la fonction et renvoie les résultats y1=0 et y2=0 si la valeur d'entrée est négative.
Dans ce cas, la sortie de la fonction est :
0
0