English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Une fonction est un ensemble de instructions exécutées ensemble. Dans MATLAB, une fonction est définie dans un fichier distinct. Le nom du fichier doit être le même que le nom de la fonction.
La fonction opère sur les variables dans son propre espace de travail (également appelé espace de travail local), qui est différent de l'espace de travail accessible à partir de l'invite de commande MATLAB (appelé espace de travail de base).
函数可以接受多个输入参数,并且可以返回多个输出参数。
Les fonctions peuvent accepter plusieurs paramètres d'entrée et peuvent retourner plusieurs paramètres de sortie.-
La syntaxe de la déclaration de la fonction est1function [out2, out1, ..., outN] = myfun(in2, ..., outN] = myfun(in3, in
dans les exemples en ligne suivantsmymaxLa fonction doit être écrite dans un fichier nommémymax.mdans le fichier. Il prend cinq nombres en paramètres et retourne le plus grand nombre.
Créez un fichier de fonction nommé mymax.m et entrez le code suivant-
function max = mymax(n1, n2, n3, n4, n5 %Ce fonction est utilisé pour calculer %Entrer cinq nombres max = n1 if(n2 > max) max = n2 end if(n3 > max) max = n3 end if(n4 > max) max = n4 end if(n5 > max) max = n5 end
La première ligne de la fonction commence par le mot-clé function au début . Il donne le nom de la fonction et l'ordre des paramètres. Dans notre exemple,mymaxLa fonction a cinq paramètres d'entrée et un paramètre de sortie.
Les lignes de commentaires après la déclaration de la fonction fournissent du texte d'aide. Lorsque vous tapez ce qui suit, ces lignes sont affichées :
help mymax
-
Cette fonction calcule le maximum des five numbers given as input
Vous pouvez appeler la fonction-
mymax(34 78 89 23 11
-
ans = 89
Les fonctions anonymes sont comme les fonctions inline dans les langages de programmation traditionnels, définies dans une seule instruction MATLAB. Elles consistent en une expression MATLAB et un nombre quelconque de paramètres d'entrée et de sortie.
Vous pouvez définir des fonctions anonymes directement dans la ligne de commande MATLAB ou dans des fonctions ou des scripts.
De cette manière, vous pouvez créer des fonctions simples sans avoir à créer de fichiers pour elles.
La syntaxe pour créer une fonction anonyme à partir d'une expression est
f = @(arglist)expression
Dans cet exemple, nous allons écrire une fonction anonyme nommée power, qui prend deux nombres en entrée et élève le premier nombre à la puissance du second.
-
power = @(x, n) x.^n; result1 power(7 3 result2 power(49, 0.5 result3 power(10 -10 result4 =4.5 1.5
Lors de l'exécution du fichier, il affiche-
result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459
Toutes les fonctions, à l'exception des fonctions anonymes, doivent être définies dans le fichier. Chaque fichier de fonction contient une fonction principale obligatoire qui apparaît en premier, ainsi qu'un nombre quelconque de sous-fonctions optionnelles utilisées après la fonction principale.
Il est possible d'appeler la fonction principale à partir de l'extérieur du fichier principal (à partir de la ligne de commande ou d'autres fonctions), mais il est impossible d'appeler une sous-fonction à partir de l'extérieur du fichier principal ou d'autres fonctions.
Les sous-fonctions ne sont visibles que pour la fonction principale et les autres sous-fonctions définies dans le fichier de fonction qui les contient.
Écrivons une fonction nommée quadratic pour calculer les racines d'une équation quadratique. Cette fonction contient trois entrées : les coefficients quadratiques, les coefficients linéaires et la constante. Elle retournera les racines.
Le fichier de fonction quadratic.m contiendra la fonction principale quadratic et la sous-fonction disc, qui calcule l'expression discriminante.
Créez un fichier de fonction quadratic.m et saisissez le code suivant à l'intérieur
function [x12] = quadratic(a,b,c) % Cette fonction retourne % Équation quadratique. % Il nécessite3Il nécessite % x2,x et % Constante % Il retourne les racines d = disc(a,b,c); x1 = (- + / 2* x2 = (- - / 2* end% Fin de la fonction quadratic function dis = disc(a,b,c) % Calcul de l'expression discriminante de la fonction dis = sqrt(b^2 - 4*a*c); end% Fin de la sous-fonction-function
Vous pouvez appeler ces fonctions à partir de la ligne de commande, comme suit :
quadratic(24-4
-
ans = 0.7321
Vous pouvez définir une fonction dans le corps d'une autre fonction. Ce sont les fonctions imbriquées. Les fonctions imbriquées contiennent tous ou certains composants de toute autre fonction.
Les fonctions imbriquées sont définies dans la portée d'une autre fonction, elles partagent l'accès à l'espace de travail de la fonction contenant.
Les fonctions imbriquées suivent la syntaxe suivante-
function x = A(p1, p2 ... B(p2 function y = B(p3 ... end ... end
Laissons réécrire l'exemple précédentFonction. Cependant, cette fois, la fonction disc sera une fonction imbriquée.
Créez un fichier de fonction2.m,et saisissez le code suivant à l'intérieur-
function [x12,x2] = quadratic function disc% Fonction imbriquée d = sqrt(b^2 - 4*a*c); end% Fin de la fonction disc disc; x1 = (- + / 2* x2 = (- - / 2* end% Fin de la fonction quadratic2
224-4
-
73205
Les fonctions privées sont des fonctions principales qui ne sont visibles que pour un groupe limité d'autres fonctions. Si vous ne souhaitez pas rendre public l'implémentation de la fonction function(s), vous pouvez les créer en tant que fonctions privées.
Les fonctions privées se trouvent dans un sous-répertoire nommé Private.
Elles ne sont visibles que pour les fonctions du répertoire parent.
Laissons réécrireLa fonction. Cependant, cette fois, la fonction disc calculera l'expression discriminante et sera une fonction privée.
Créez un sous-répertoire nommé private dans le dossier de répertoire de travail, et stockez le fichier de fonction suivant disc.m à l'intérieur
function dis = disc(a,b,c) % Calcul de l'expression discriminante de la fonction dis = sqrt(b^2 - 4*a*c); end% Fin de la sous-fonction
Créez une fonction quadratic dans votre répertoire de travail3m, et saisissez le code suivant à l'intérieur-
function [x12,x3] = quadratic (a,b,c) % Cette fonction retourne % Un polynôme quadratique.3Il nécessite % Ils sont les paramètres d'entrée x2,x et % Le terme constant % Il retourne les racines d = disc(a,b,c); x1 = (- + / 2* x2 = (- - / 2* end % Fin de quadratic3
324-4
-
73205
-
/ end
-
10 34 45 25 45 33 19 4 34 38 42] av = average(n)
Lorsque vous exécutez le fichier, il affichera le résultat suivant-
av = 35.500