功能
nargin是用來判斷輸入變數個數的函式,特別是在利用了可變參數列表的函式中, 用nargin獲取輸入參數個數很方便。
調用格式
nargin
nargin(fx)
相關:varargout、nargout、varargin
函式說明
nargin通過調用當前正在執行的函式返回輸入參數的數量,只在函式體內使用nargin語法功能。
nargin(fx)在函式fx的定義聲明中返回輸入參數的個數。如果函式包括varargin其定義,那么nargin返回的輸入個數為負。例如函式foo輸入有 a,b,和varargin三個參數,那么nargin('foo”)返回值為-3。
套用舉例
例1.函式檔案 examp.m
function fout=examp(a,b,c)
if nargin==1
fout=a;
else if nargin==2
fout=a+b;
else if nargin==3
fout=(a*b*c)/2;
end
end
end
例1.function名為myplot。
function [x0, y0] = myplot(x, y, npts, angle, subdiv)
% MYPLOTPlot a function.
% MYPLOT(x, y, npts, angle, subdiv)
%The first two input arguments are
%required; the other three have default values...
ifnargin< 5, subdiv = 20; end
ifnargin< 4, angle = 10; end
ifnargin< 3, npts = 25; end
...
if nargout == 0
plot(x, y)
else
x0 = x;
y0 = y;
end
end
註:%x,y是兩個變數,npt,angle,subdiv這三個參數具有默認值,不需要輸入。
if nargin < 5, subdiv = 20; end如果輸入變數的個數小於5個,那么給subdiv賦默認值。
if nargin < 4, angle = 10; end如果輸入變數的個數小於4個,那么給angle賦默認值。
詳細用法 在matlab視窗中輸入 help nargin
例3.
function foo(argA, argB, argC, varargin)
fprintf('How many input arguments? %d\n', nargin);
fprintf('The input arguments are: %d %d %d ', argA, argB, argC);
for k=1:size(varargin, 2)
disp(varargin{k})
end
disp('Done');
end
輸出結果
>> foo(1, 2, 3)
How many input arguments? 3
The input arguments are: 1 2 3 Done
>> foo(1, 2, 3, [4, 5, 6])
How many input arguments? 4
The input arguments are: 1 2 3 4 5 6
Done