Best practice for saving only one output from a vector-outputting function

What's the proper way to request only one variable from a vector outputting function, i.e.
[WantThis DontWantThis] = myfun(x, y, ... )
In the past I've just saved the DontWantThis output as a variable called trash and not made reference to it again. This seems rather unprofessional. Is there a cleaner way?

 Réponse acceptée

Cedric
Cedric le 14 Avr 2013
Modifié(e) : Cedric le 14 Avr 2013
Simply
WantThis = myfun(x, y, ... )
if you just need/want the first output. More generally
[a, b, c, d] = myfun(x, y, ... )
even if there could be more output args ( e, f, g, ..).
If don't want to name args that you don't need, which are preceding args that you do need, you can use ~ as a placeholder:
[~, ~, c, ~, e] = myfun(x, y, ... )
Note that ~ is supported since 2009 if I remember well (edit: ref).

Plus de réponses (1)

You can replace it with a tilde (~)
[WantThis ~] = myfun(x, y, ... )
or just leave it off entirely
WantThis = myfun(x, y, ... )
In the above case, DontWantThis will be thrown away, essentially not returned. I think most people use this latter way, though it can only be used for ignoring return arguments to the right. In other words if you just put one return value:
theOutput = myfun(x, y, ... )
theOutput will be WantThis, not DonotWantThis. Understand?

Catégories

En savoir plus sur Graphics Objects dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by