How do functions with multiple outputs work?

1 visualización (últimos 30 días)
Brando Miranda
Brando Miranda el 28 de Abr. de 2016
Comentada: Star Strider el 28 de Abr. de 2016
I was trying to write matlab functions but I sometimes find myself doing something really silly(in my opinion). Consider a function of multiple outputs:
function [ F_X, Z, A ] = f(obj,X)
F_X = magic(5);
Z = ones(5);
A = 2*ones(5);
end
and then I have some wrapper function like:
function [ F_X ] = get_first_arg(obj,X)
[F_X, ~, ~] = obj.f(X);
end
to get the first argument so that when I want to do use only the first argument I do
g(obj.get_first_arg(X))
instead of:
[F_X, ~, ~] = obj.f(X)
g(F_X)
this seems really silly. I have tried googling for this but didn't find anything I could use. How does matlab know that I only want the first object/matrix/data thing in output tuple?

Respuestas (1)

Star Strider
Star Strider el 28 de Abr. de 2016
If you just call your function as:
F_X = f(obj,X);
by default, only the first argument will be returned. You only need the tilde (~) if you do not want to return the first argument, for example:
[ ~, Z, A ] = f(obj,X);
  2 comentarios
Brando Miranda
Brando Miranda el 28 de Abr. de 2016
Where is documentation discussing this?

Iniciar sesión para comentar.

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by