3 Fonctions ou macros (function ) Nous allons maintenant détailler quelques règles de programmation qui pour la plupart ne devraient pas surprendre outre mesure si on connaı̂t déjà un autre langage (C ou Fortran). Les fonctions sont des enchaı̂nements de commandes Matlab regroupées sous un nom de fonction permettant de commander leur exécution. On peut mettre dans une fonction un groupe de commandes destiné à être exécuté plusieurs fois au cours du calcul avec éventuellement des valeurs de paramètres différents. La fonction peut aussi être chargée de réaliser un calcul avec un certain algorithme, qui pourra être remplacé éventuellement par un autre plus rapide ou plus précis, en changeant simplement le nom de la fonction dans le programme appelant. Enfin, dès que le programme est un peu long et compliqué, il est souhaitable de le découper en fonctions, correspondant à des étapes pour améliorer la lisibilité et la compréhension de l’algorithme. Les fonctions peuvent être définies inline c’est à dire dans le corps du progamme appelant ou bien dans des fichiers externes indépendants M file. 3.1 M-files functions Dès que la fonction nécessite plusieurs instructions, il vaut mieux la définir dans un fichier à part à l’aide de l’éditeur de texte. De manière générale, la syntaxe de définition d’une fonction externe est function [y_1,...,y_m]=toto(x_1,....,x_n) . . . où toto est le nom de la fonction, x1 , ....xn , les n arguments d’entrée et [y1 , ...ym ] les m arguments de sortie. Les points verticaux symbolisent les instructions effectuées à l’appel de la fonction. Le passage des arguments d’entrée dans les fonctions se fait par valeur. Aussi, même si elles sont modifiées dans la fonction les valeurs des paramètres ne sont pas modifiées dans le programme appelant. Si une des variables de la procédure n’est pas définie à l’intérieur de celle-ci elle doit obligatoirement être fournie en argument d’entrée La récupération des valeurs calculées par la fonction se fait par les paramètres de sortie ([y 1 , . ∗ .yn ] dans la définition de toto ci-dessus). Prenons l’exemple d’une fonction angle, qui doit calculer l’angle formé par le segment d’extrémités (0, 0) et (x, y) avec l’horizontale et aussi le dessiner. On peut créer le fichier angle.m contenant les lignes : function [s]=angle(x,y) s=180*atan(y/x)/pi; patch([x,0,x],[0,0,y],’y’) axis equal puis dans la fenêtre de commandes on tape angle(4,5) Le nom du fichier contenant la fonction porte obligatoirement le nom de cette dernière. On peut mettre plusieurs fonctions dans le même M-file mais seule la fonction du même nom que le fichier peut être utilisée, appelée, à partir de la fenêtre de commandes ou d’une autre fonction ou d’un script. Les autres fonctions éventuellement stockées dans le fichier peuvent s’appeler entre elles mais ne sont pas visibles de l’extérieur. S’il n’y a qu’un résultat comme dans l’exemple de la fonction angle, on peut se dispenser de le récupérer dans une variable. En revanche s’il y a plus d’un paramètre de sortie, il faut récupérer leurs valeurs dans des variables dans le script d’appel. Regardons par exemple l’utilisation de la fonction polaire définie ci-dessous et sauvée dans le fichier polaire.m 10 ">
/
Scarica
Solo un promemoria. Puoi visualizzare il documento qui. Ma soprattutto, la nostra IA l''ha già letto. Può spiegare cose complesse in termini semplici, rispondere alle tue domande in qualsiasi lingua e aiutarti a navigare rapidamente anche nei documenti più lunghi o complicati.