È possibile ottenere l'ennesimo valore di ritorno da una funzione senza dover creare variabili fittizie per tutti i n-1
valori di ritorno precedenti?
Diciamo, ho la seguente funzione in MATLAB:
function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;
Supponiamo ora che mi interessi solo il terzo valore di ritorno. Questo può essere ottenuto creando una variabile fittizia:
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
Ma penso che questo sia un po ' brutto . Penso che potresti essere in grado di fare qualcosa come una delle seguenti cose, ma non puoi:
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
Ci sono modi eleganti per farlo che funzionano?
Finora, la soluzione migliore è usare semplicemente variableThatIWillUse
come variabile fittizia. Questo mi evita di dover creare una vera e propria variabile fittizia che inquina lo spazio di lavoro (o che avrei bisogno di cancellare). In breve: la soluzione è utilizzare il variableThatIWillUse
valore di ritorno for every fino a quello interessante. I valori restituiti dopo possono essere semplicemente ignorati:
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
Penso ancora che questo sia un codice molto brutto, ma se non esiste un modo migliore, immagino che accetterò la risposta.