¿Es posible obtener el valor de retorno 'enésimo' de una función sin tener que crear variables ficticias para todos los n-1
valores de retorno anteriores?
Digamos que tengo la siguiente función en MATLAB:
function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;
Ahora suponga que solo me interesa el tercer valor de retorno. Esto se puede lograr creando una variable ficticia:
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
Pero creo que esto es algo feo . Creo que podría hacer algo como una de las siguientes cosas, pero no puede:
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
¿Hay alguna forma elegante de hacer esto que funcione?
Hasta ahora, la mejor solución es simplemente usar variableThatIWillUse
como variable ficticia. Esto me evita tener que crear una variable ficticia real que contamine el espacio de trabajo (o que necesitaría borrar). En resumen: la solución es usar el variableThatIWillUse
para cada valor de retorno hasta el interesante. Los valores devueltos después pueden simplemente ignorarse:
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
Sigo pensando que este es un código muy feo, pero si no hay una mejor manera, supongo que aceptaré la respuesta.