Nargout,如何在调用函数时指定它

时间:2015-11-14 18:52:29

标签: matlab

nargout的定义中,用户可以在调用函数后指定他希望看到的输出数量,然后如何指定输出数量?

我考虑过以下示例:

function [dif,absdif] = subtract(y,x)
dif = y - x;
if nargout > 1
   disp('Calculating absolute value')
   absdif = abs(dif);
end

当您使用任意两个号码拨打subtract(2,4)时,您将看到他们的差异。我如何返回差异的绝对值呢?我试过这个:

subtract(2,4,nargout=2),不幸的是,这不起作用......

1 个答案:

答案 0 :(得分:3)

nargout不允许“指定他希望在调用函数后看到的输出数量”。而是来自nargout的文档:

  

nargout返回对当前正在执行的函数的调用中指定的输出参数的数量。仅在函数体中使用此nargout语法。

在您的示例中,nargout将返回调用函数subtract时请求的数字输出。如果该函数被称为subtract(y,x)a=subtract(y,x)[a,b]=subtract(y,x),则对nargout的调用将返回01和{{1 }}, 分别。因此,如果您想要第二个输出,则需要调用2

我建议您阅读function的文档和creating and using functions上的资料。