2015-11-14 17 views
0

nargout的定義中,用戶可以指定調用該函數後希望看到的輸出數,然後如何指定輸出數?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),剛出來的藍色,可惜的是沒有工作的...

回答

3

nargout不允許一個「調用函數後指定的,他希望看到輸出的數量」 。相反,從nargout的文檔:

nargout返回調用中指定的輸出參數的數目,該參數指向當前正在執行的函數。僅在函數的主體中使用此nargout語法。

在您的示例中,nargout將返回調用函數subtract時請求的編號輸出。如果函數被調用爲subtract(y,x),a=subtract(y,x)[a,b]=subtract(y,x),則對nargout的調用將分別返回0,12。因此,如果您想要第二個輸出,您需要撥打[a,b]=subtract(y,x)

我建議您閱讀function的文檔和creating and using functions的資料。

+1

哦,我明白了,謝謝。 –

相關問題