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...