nargin為“number of input arguments”的縮寫。 在matlab中定義一個函式時, 在函式體內部, nargin是用來判斷輸入變數個數的函式。在matlab命令視窗中輸入help nargin或者doc nargin即可獲得該函式的幫助信息。
基本介紹
- 中文名:無
- 外文名:nargin
- 定義:用來判斷輸入變數個數的函式
- 類別:計算機編程
- 屬於:MATLAB函式
功能
調用格式
函式說明
套用舉例
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
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 ... if nargin< 5, subdiv = 20; end if nargin< 4, angle = 10; end if nargin< 3, npts = 25; end ... if nargout == 0 plot(x, y) else x0 = x; y0 = y; end
if nargin < 5, subdiv = 20; end如果輸入變數的個數小於5個,那么給subdiv賦默認值。
nargin和 nargout0是函式,當在函式中調用這兩個函式時,其值為該函式的輸入或輸出參數,而不需要進行聲明。如上面的例子中,在函式A中調用nargin(B(nargin,Y*rand(4)))表示函式A的輸入參數個數,在函式C中調用nargin表示函式C的輸入參數個數。
相關函式:varargin
函式nargin()和函式nargout()允許函式接收或返回任意數目的參數。在嵌套函式中也可以使用可變參數。但需要注意的是,varargin、varargout和nargin、nargout的意義可能有所不同。
varargin和varargout為變數,與MATLAB其他變數的作用範圍相同。由於嵌套函式與主函式使用相同的工作區,因此varargin和varargout既可以表示嵌套函式的輸入輸出參數,也可以是主函式的輸入/輸出函式,具體值取決於程式中的變數聲明:
(1)如果嵌套函式在函式聲明中包含varargin或者varargout,則在該函式內部調用這兩個變數時,變數內容為該函式的輸入輸出參數;
(2)如果嵌套函式聲明中沒有包含varargin或者varargout,而在該函式的上層函式聲明中包含varargin或者varargout,則當在該嵌套函式內部調用這兩個變數時,變數內容為上層函式的輸入輸出參數。
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? 3The input arguments are: 1 2 3 Done>> foo(1, 2, 3, [4, 5, 6])How many input arguments? 4The input arguments are: 1 2 3 4 5 6Done
nargin與nargout
語法
(2)n=nargin('fun')
(3)n=nargout
(4)n=nargout('fun')