Est-il possible d'obtenir la «nième» valeur de retour d'une fonction sans avoir à créer des variables fictives pour toutes les n-1
valeurs de retour avant elle?
Disons que j'ai la fonction suivante dans MATLAB:
function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;
Supposons maintenant que je ne m'intéresse qu'à la troisième valeur de retour. Cela peut être accompli en créant une variable factice:
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
Mais je pense que c'est un peu moche . Je pense que vous pourriez faire quelque chose comme l'une des choses suivantes, mais vous ne pouvez pas:
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
Y a-t-il des façons élégantes de faire cela qui fonctionnent?
Jusqu'à présent, la meilleure solution consiste simplement à utiliser le variableThatIWillUse
comme variable factice. Cela m'évite d'avoir à créer une vraie variable factice qui pollue l'espace de travail (ou que j'aurais besoin d'effacer). En bref: la solution est d'utiliser le variableThatIWillUse
pour chaque valeur de retour jusqu'à l'intéressante. Les valeurs renvoyées après peuvent simplement être ignorées:
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
Je pense toujours que c'est un code très laid, mais s'il n'y a pas de meilleur moyen, je suppose que j'accepterai la réponse.