MATLAB Language
Les fonctions
Recherche…
Exemple de base
Le script MATLAB suivant montre comment définir et appeler une fonction de base:
myFun.m :
function [out1] = myFun(arg0, arg1)
out1 = arg0 + arg1;
end
terminal :
>> res = myFun(10, 20)
res =
30
Plusieurs sorties
Le script MATLAB suivant montre comment renvoyer plusieurs sorties en une seule fonction:
myFun.m :
function [out1, out2, out3] = myFun(arg0, arg1)
out1 = arg0 + arg1;
out2 = arg0 * arg1;
out3 = arg0 - arg1;
end
terminal :
>> [res1, res2, res3] = myFun(10, 20)
res1 =
30
res2 =
200
res3 =
-10
Cependant, MATLAB ne renverra que la première valeur lorsqu'il est assigné à une seule variable
>> res = myFun(10, 20)
res =
30
L'exemple suivant montre comment obtenir une sortie spécifique
>> [~, res] = myFun(10, 20)
res =
200
nargin, nargout
Dans le corps d'une fonction, nargin
et nargout
indiquent respectivement le nombre réel d'entrées et de sorties fournies dans l'appel.
Nous pouvons par exemple contrôler l'exécution d'une fonction en fonction du nombre d'entrées fournies.
myVector.m :
function [res] = myVector(a, b, c)
% Roughly emulates the colon operator
switch nargin
case 1
res = [0:a];
case 2
res = [a:b];
case 3
res = [a:b:c];
otherwise
error('Wrong number of params');
end
end
Terminal:
>> myVector(10)
ans =
0 1 2 3 4 5 6 7 8 9 10
>> myVector(10, 20)
ans =
10 11 12 13 14 15 16 17 18 19 20
>> myVector(10, 2, 20)
ans =
10 12 14 16 18 20
De la même manière, nous pouvons contrôler l'exécution d'une fonction en fonction du nombre de paramètres de sortie.
myIntegerDivision :
function [qt, rm] = myIntegerDivision(a, b)
qt = floor(a / b);
if nargout == 2
rm = rem(a, b);
end
end
terminal :
>> q = myIntegerDivision(10, 7)
q = 1
>> [q, r] = myIntegerDivision(10, 7)
q = 1
r = 3