Un moyen simple de définir des fonctions dans Matlab

1. fonction de définition de fichier m (fonction m)

  1. Structure de base de la fonction Matlab
function[输出形参表: output1, ...,outptn] = 函数名(输入形参表: input1, ... , inputn)

注释说明部分
函数体代码部分

end

Description : fonction : indique qu'une fonction est écrite ;

La liste des paramètres formels de sortie, c'est-à-dire la valeur de retour de la fonction, chaque valeur de retour est séparée par une virgule ; (elle n'a pas besoin d'être affectée par retour à la valeur de retour comme en langage C, et les paramètres correspondants de outp_args utilisable directement)

Nom de la fonction : doit être cohérent avec le nom du fichier m

Liste des paramètres d'entrée : les paramètres d'entrée de la fonction, séparés par des virgules ;

Corps de la fonction : complète la fonction spécifique de la fonction, qui est écrite en fonction des besoins spécifiques ; elle est réalisée en utilisant des "paramètres d'entrée de fonction", des "variables personnalisées" et une "structure de contrôle de flux" ;

end : indique la fin de cette fonction, qui peut également être omise.

  1. appel de fonction

La fonction définie est enregistrée en tant que fichier m avec le même nom de fonction et placée sous le chemin actuel de Matlab (ou modifiez le chemin actuel vers le chemin où se trouve le fichier de fonction m), puis utilisez la fonction qui vient avec Matlab directement dans la fenêtre de commande Ou utiliser la fonction dans le code du programme est de l'appeler. Lors de l'appel d'une fonction, vous avez seulement besoin de savoir ce que fait la fonction, ainsi que ses paramètres d'entrée et ses paramètres de sortie.

Le format général d'un appel de fonction est :

[输出实参表]=函数名(输入实参表)

Remarque 1 : Lorsqu'une instruction return est rencontrée dans la fonction, le corps de la fonction est fermé et l'appel de la fonction se termine ;

Note 2 : Une ou plusieurs fonctions peuvent également être définies dans le corps de la fonction, appelées sous-fonctions ; Note : les sous-fonctions ne peuvent exister que dans le corps de la fonction principale, pas indépendamment ; la position des sous-fonctions dans le corps de la fonction principale peut être arbitraire, sans affecter l'utilisation ; La sous-fonction ne peut être appelée que par la fonction principale et d'autres sous-fonctions sous le même corps de fonction principale, mais la sous-fonction "handle" est une exception ;

Remarque 3 : lors de l'appel d'une fonction, Matlab utilise deux variables permanentes nargin et nargout pour enregistrer respectivement le nombre de paramètres réels d'entrée et de paramètres réels de sortie lors de l'appel de la fonction. Tant que ces deux variables sont incluses dans le fichier de fonction, le nombre de paramètres d'entrée et de sortie lors de l'appel du fichier de fonction peut être connu avec précision, afin de déterminer comment la fonction est traitée.

Exemple 1 Définition de fonction (sous-fonction) et exemple d'appel, trouver la valeur maximale et minimale du vecteur.

编写m-函数文件:max_min_values.m


function [max,min] = max_min_values(X)

%输入参数X为数值向量,返回其最大值和最小值

max=mysubfun1(X);

min=mysubfun2(X);

function r=mysubfun1(X) %子函数1

x1=sort(X, 'descend');

r=x1(1);

end

function r=mysubfun2(X)  %子函数2

x1=sort(X);

r=x1(1);

end

end
调用函数(命令窗口):

A = [34,56,23,11,2,39];

[m,n]=max_min_values(A)

运行结果: m = 56
          n = 2

1. Fichier de fonction + fichier de commande d'appel : besoin de définir un fichier de fonction M personnalisé séparément

Exemple : fonction de somme personnalisée

Besoin de personnaliser un fichier my_sum.m pour stocker la fonction

function[s]=my_sum(n)
s=0;
for 
    i=1:n
    s=s+i;
end

Remarque : Le nom de la fonction (my_sum) doit être cohérent avec le nom du fichier (my_sum.m)
Lors de l'appel de la fonction, le fichier de la fonction est placé sous le répertoire de travail courant.

2. Fichier de fonction + sous-fonction : définissez un fichier M avec plusieurs sous-fonctions

Exemple : trouver la fonction maximale

function son_function( )        %主函数必须位于最上方
%子函数举例
max1=find_max(1,2,3)
max2=find_max(7,3,9)

function max=find_max(a,b,c)    %子函数
if (a>=b)&(a>=c)
    max=a;
elseif (b>=a)&(b>=c)
    max=b;
else
    max=c;
end

Remarque : Plusieurs fonctions peuvent être écrites dans un fichier m, mais seule la première peut être appelée dans d'autres fichiers, et les fonctions restantes ne peuvent être appelées que dans ce fichier.

Le nom de la fonction doit être le même que le nom de la fonction principale

Je suppose que tu aimes

Origine blog.csdn.net/msmsa/article/details/129859205
conseillé
Classement