關於matlab的輸入輸出引數

2021-08-19 14:22:32 字數 2371 閱讀 1293

nargin

nargin為「number of input arguments」的縮寫。 在matlab中定義乙個函式時, 在

函式體內部, nargin是用來判斷輸入變數個數的函式。

nargin(fx)在函式fx的定義宣告中返回輸入引數的個數。如果函式包括varargin其定義,那麼nargin返回的輸入個數為負。例如函式foo輸入有 a,b,和varargin三個引數,那麼nargin('foo」)返回值為-3

從而可以進行不定輸入量的計算

function re = add_multi(a,b,c,d)%%

if nargin ==4

re =  a + b + c + d;

elseif nargin ==3

re = a + b + c ;

nargout

nargout

nargout的作用是在matlab中定義乙個函式時, 在

函式體內部, nargout指出了

輸出引數

的個數(nargin指出了輸入引數的個數)。 特別是在利用了可變引數列表的函式中, 用nargout獲取輸出引數個數很方便。

應用舉例

function varargout = foo(varargin)

fprintf('how many output arguments? %d\n', nargout);

for k=1:nargout

varargout(k) = };

endend

輸出結果

>> ret = foo(1, 2, 3)

how many output arguments? 1

ret = 1

>> [reta, retb] = foo(1, 2, 3)

how many output arguments? 2

reta = 1

retb = 2

>> [reta, retb, retc] = foo(1, 2, 3)

how many output arguments? 3

reta = 1

retb = 2

retc = 3

還有就是上文已出現的兩個引數

varargin

varargin是matlab的乙個函式,是「variable length input argument list」的縮寫,它提供了一種函式可變引數列表機制,允許呼叫者呼叫該函式時根據需要來改變輸入引數的個數。

function re = add_var(a,b,varargin)%%

% author:jzq

if nargin ==2

re =  a + b;

elseif nargin ==3

c = varargin[1];

re = a + b + c;

else 

error( 'wrong');

end只要把函式的引數列表的最後乙個引數寫成varargin,就可以在函式內部以訪問cell陣列的方式來獲取可變引數的資訊

varargout

varargout

可以看做「variable length output argument list」的縮寫。在matlab中定義m函式時通過

varargout

我們可以得到可變個數個返回值

function varargout=add_my(b,c,d)

% add_my 輸入引數的相加

% 輸入 加數b、c、d

% 輸出 varargout為輸入引數的運算結果

% 2023年6月22日編

if nargout==1

a1 = b + c + d;

varargout=;

elseif nargout==2

a1 = b + c + d;

a2 = b + c;

varargout=;

elseif nargout==3

a1 = b + c + d;

a2 = b + c;

a3 = b + d;

varargout=;

else

error('wrong')

end>> a=add_my(1,2,3)

a =6

>> [a,b]=add_my(1,2,3)

a =6

b =3

>> [a,b,c]=add_my(1,2,3)

a =6

b =3

c =4

>> add_my(1,2,3)

??? error using ==> add_my at 22

wrong

matlab的輸入輸出常見語句

x input please input a number please input a number 22 x 22 輸入字串 x input please input a string s please input a string this is a string x this is a st...

matlab的輸入輸出常見語句

x input please input a number please input a number 22 x 22 輸入字串 x input please input a string s please input a string this is a string x this is a st...

matlab的輸入輸出常見語句

x input please input a number please input a number 22 x 22 輸入字串 x input please input a string s please input a string this is a string x this is a st...