Je me demandais si il était possible d'obtenir le n-ième valeur de retour d'une fonction sans avoir à créer des variables muettes pour tous les n-1 valeurs de retour avant.
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 suis seulement intéressé à la troisième valeur de retour. Ceci peut être accompli par la création (au moins) une variable muette, mais je pense que c'est laid:
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
Je pense que vous pourriez être en mesure de faire quelque chose comme l'une des choses suivantes, mais vous ne pouvez pas:
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
Il n'existe aucun élégante des façons de le faire que faire du travail?
Jusqu'à présent, la meilleure solution est d'utiliser simplement le variableThatIWillUse comme une variable muette. Cela m'évite d'avoir à créer une véritable variable muette qui polutes l'espace de travail (ou que j'aurais besoin de l'effacer). En bref: la solution est d'utiliser la variableThatIWillUse pour chaque valeur de retour jusqu'à l'intéressant. Les valeurs de retour après peut être simplement ignoré:
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
Je pense toujours que c'est très laid code, mais si il n'y a pas de meilleure façon, alors je crois que je vais accepter la réponse.