Créer des fonctions dans des fichiers
Les scripts et les fonctions permettent de réutiliser des séquences de commandes en les stockant dans des fichiers programme. Les scripts sont le type de programme le plus simple, puisqu’ils stockent des commandes qui sont exactement telles que vous les saisiriez en ligne de commande. Les fonctions offrent une plus grande flexibilité, notamment parce qu’elles permettent de passer des valeurs d’entrée et de renvoyer des valeurs de sortie. Par exemple, cette fonction nommée fact calcule la factorielle d’un nombre (n) et renvoie le résultat (f).
function f = fact(n) f = prod(1:n); end
Ce type de fonction doit être défini au sein d’un fichier, pas en ligne de commande. Souvent, une fonction est stockée dans son propre fichier. Dans ce cas, la bonne pratique est d’utiliser le même nom pour la fonction et pour le fichier (dans cet exemple, fact.m), étant donné que MATLAB® associe le programme au nom de fichier. Sauvegardez le fichier dans le dossier courant ou dans un dossier situé sur le chemin de recherche MATLAB.
Vous pouvez appeler la fonction depuis la ligne de commande, en utilisant les mêmes règles de syntaxe qui s’appliquent aux fonctions installées avec MATLAB. Par exemple, calculez la factorielle de 5.
x = 5; y = fact(5)
y = 120
Une autre option pour stocker des fonctions est de les inclure dans un fichier script. Par exemple, créez un fichier nommé mystats.m avec quelques commandes et deux fonctions, fact et perm. Le script calcule la permutation de (3,2).
x = 3; y = 2; z = perm(x,y) function p = perm(n,r) p = fact(n)/fact(n-r); end function f = fact(n) f = prod(1:n); end
Avant R2024a : Les fonctions locales dans les scripts doivent être définies à la fin du fichier, après la dernière ligne du code de script.
Appelez le script depuis la ligne de commande.
mystats
z =
6Syntaxe pour la définition de fonctions
La première ligne de chaque fonction est l’instruction de définition, qui comprend les éléments suivants.
Le mot-clé | Utilisez des caractères minuscules pour le mot-clé. |
Arguments de sortie (optionnel) | Si votre fonction renvoie une sortie, vous pouvez spécifier le nom de la sortie après le mot-clé function myOutput = myFunction(x)Si votre fonction renvoie plus d’une sortie, mettez les noms de sorties entre crochets. function [one,two,three] = myFunction(x)S’il n’y a pas de sortie, vous pouvez l’omettre. function myFunction(x)Ou vous pouvez utiliser des crochets vides. function [] = myFunction(x) |
Nom de la fonction (requis) | Les noms de fonction valides respectent les mêmes règles que les noms de variable. Ils doivent commencer par une lettre et peuvent contenir des lettres, des chiffres ou des underscores. Remarque Pour éviter toute confusion, utilisez le même nom pour le fichier de fonction et la première fonction au sein du fichier. MATLAB associe votre programme au nom du fichier, pas au nom de la fonction. Les fichiers de scripts ne peuvent pas porter le nom d’une fonction qui s’y trouve. |
Arguments d’entrée (optionnel) | Si votre fonction accepte n’importe quelle entrée, mettez leurs noms entre parenthèses après le nom de la fonction. Séparez les entrées par des virgules. function y = myFunction(one,two,three)S’il n’y a pas d’entrée, vous pouvez omettre les parenthèses. |
Conseil
Quand vous définissez une fonction avec plusieurs arguments d’entrée ou de sortie, listez d’abord les arguments requis. Cet ordre vous permettra d’appeler votre fonction sans spécifier d’arguments optionnels.
Contenu des fonctions et des fichiers
Le corps d’une fonction peut inclure des expressions MATLAB valides, des instructions de contrôle de flux, des commentaires, des lignes vides et des fonctions imbriquées. Toute variable que vous créez au sein d’une fonction est stockée au sein d’un espace de travail spécifique à cette fonction, distinct de l’espace de travail de base.
Les fichiers de programme peuvent contenir plusieurs fonctions. Si le fichier ne contient que des définitions de fonction, la première fonction est la fonction principale et est la fonction que MATLAB associe au nom de fichier. Les fonctions qui suivent la fonction principale ou qui sont incluses dans le code de script sont appelées fonctions locales. Les fonctions locales sont uniquement disponibles au sein du fichier.
Instructions de fin
Les fonctions se terminent par une instruction end, la fin du fichier ou la ligne de définition d’une fonction locale, selon la première éventualité. L’instruction end est requise si :
L’une des fonctions du fichier contient une fonction imbriquée (une fonction contenue entièrement au sein de son parent).
La fonction est une fonction locale au sein d’un fichier de fonctions, et qu’une des fonctions du fichier utiliser le mot clé
end.La fonction est une fonction locale au sein d’un fichier de scripts.
Même si cela est parfois optionnel, utilisez end pour une meilleure lisibilité du code.
Voir aussi
Rubriques
- Fichiers et dossiers auxquels MATLAB a accès
- Base and Function Workspaces
- Types of Functions
- Add Functions to Scripts