How do functions with multiple outputs work?
2 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
回答(1 个)
Star Strider
2016-4-28
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);
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!