假设我有一个函数foo可以在给定输入的情况下返回三个值:
function [a,b,c] = foo(input)
b变量的计算c需要很长时间,所以有时我可能希望忽略它们的计算foo。如果我想忽略这两个计算,我只需像这样调用函数:
output1 = foo(input);
然后包括nargout在foo:
if nargout == 1
    % Code to calculate "a" only
else
    % Code to calculate other variables
如果我想计算最后一个输出,而不是第二个,就会出现问题。在这种情况下,我的函数调用将是:
[output1,~,output3] = foo(input);
现在,如果我使用nargoutwithinfoo检查函数调用中有多少输出,它将始终返回3,因为波浪号运算符 ( ~) 被视为有效输出。因此,我不能nargout用来确定是否计算第二个输出,b,在 内foo。
有没有其他方法可以做到这一点?即,是否可以检查函数调用的哪些输出从函数本身中被丢弃?