在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)
,不幸的是,这不起作用......
答案 0 :(得分:3)
nargout
不允许“指定他希望在调用函数后看到的输出数量”。而是来自nargout
的文档:
nargout返回对当前正在执行的函数的调用中指定的输出参数的数量。仅在函数体中使用此nargout语法。
在您的示例中,nargout
将返回调用函数subtract
时请求的数字输出。如果该函数被称为subtract(y,x)
,a=subtract(y,x)
和[a,b]=subtract(y,x)
,则对nargout
的调用将返回0
,1
和{{1 }}, 分别。因此,如果您想要第二个输出,则需要调用2
。
我建议您阅读function
的文档和creating and using functions上的资料。