How do functions with multiple outputs work?

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?

Antworten (1)

Star Strider
Star Strider am 28 Apr. 2016

0 Stimmen

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 Kommentare

Brando Miranda
Brando Miranda am 28 Apr. 2016
Where is documentation discussing this?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Gefragt:

am 28 Apr. 2016

Kommentiert:

am 28 Apr. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by