Définition d'une fonction
Définition : function
Les fonctions sont des scripts MATLAB particuliers.
La structure d'une fonction comporte nécessairement :
le mot réservé
function
;le nom de la fonction, par exemple
mafonction
;un ensemble de paramètres d'entrée
e1, e2, ..., en
;un ensemble de paramètres de sortie
s1, s2, ..., sn
;le mot réservé
end
.
Fondamental :
Le nom du fichier doit porter l'extension .m
et le nom du fichier sans suffixe doit être exactement le nom de la fonction (apparaissant après le mot-clé function
).
Complément :
Les versions récentes de MATLAB permettent la création de fonctions dans un script. C'est très pratique pour de petites fonctions "outils", qui ne nécessitent pas d'être externalisées.
Cependant, le plus souvent, il reste préférable d'externaliser les fonctions, pour en faciliter la lisibilité et la mutualisation.
Exemple :
Par exemple définissons une fonction nommée mafonction
, et enregistrée dans un fichier mafonction.m
:
Remarque :
Comme pour les scripts, il est important de choisir des noms de fonctions pertinents, ce qui n'est pas le cas pour cet exemple !
On peut déclarer une fonction avec autant de paramètres d'entrée ou de sortie que l'on veut, voire aucun.
Les paramètres d'entrée déclarés dans la définition de la fonction sont obligatoires à l'utilisation (ils ne peuvent pas être optionnels).
Par contre, par défaut, seule la première sortie est donnée par MATLAB à l'appel de la fonction. Les autres sorties sont par défaut optionnelles.
Exemple :
Ainsi, si l'on entre les commandes suivantes :
on obtient :
Par contre, si l'on souhaite récupérer toutes les sorties de la fonction, il faut préciser les variables dans lesquelles on souhaite récupérer les valeurs de sortie de la fonction :
et l'on obtient alors :
Remarque :
Lors de la définition d'une fonction, il est important de bien choisir l'ordre des variables de sortie, par ordre d'importance. Il est ainsi toujours possible de récupérer les premières variables de sortie, en ignorant les suivantes.
Conseil :
Lorsque l'on définit une fonction dans un fichier, il est préférable de mettre un ;
à la fin de chaque commande constituant la fonction. Ainsi, on évitera l'affichage de résultats intermédiaires.
Attention cependant à ne pas en mettre sur la première ligne.
Conseil :
Lorsque l'on définit une fonction, il est préférable d'utiliser systématiquement les opérateurs terme à terme .*
./
et .^
au lieu de *
/
et ^
, si l'on veut que cette fonction puisse s'appliquer à des scalaires, mais aussi à des tableaux.