
示例:
1.当如橡旦前函数的输入
在名为 addme.m 的文件中创建最多可接受两个输入的函数。在函数主体中使用 nargin 确定输入数目。
typeaddme.m
functionc=addme(a,b)
switchnargin
case2
c=a+b
case1
c=a+a
otherwise
c=0
end
end
在命令提示符下使用两个输入调用 addme 函数。
c=addme(13,42)
c=55
使用一个输入调用该函数。
c=addme(13)
c=26
2.为函数定义的输入
确定一个函数可接受多少个输入。
上一个示例中创建的 addme 函数在声明语句中包含两个输入(a 和 b)。以字符向量的形式定义函数名称,并使用它作为 nargin 的输入。
fun='addme'
nargin(fun)
ans=2
3.使用 varargin 的函数的输入
确定使用 varargin 的函数可接受多少个输如轮入。
在名为 mynewplot.m 的文件中创建一个函数,该函数接受数值输入 x 和 y,并使用varargin返回任意数目的其他绘图输入。
typemynewplot.m
functionmynewplot(x,y,varargin)
figure
plot(x,y,varargin{:})
title('MyNewPlot')
end
查询 newplot 可以接受多少个输入。
fx='mynewplot'
nargin(fx)
ans=-3
负号表示第三个输入是 varargin。mynewplot 函数可接受不定数目的附加输入参数。
扩展资料:
nargin——函数输入参数数目。
2.语法:nargin或nargin(fun)
3.说明:
nargin 针对当前正在执行的函数,返回函数调用中给定函数输入参数的数目。该语法仅可在函数体内使用。
nargin(fun) 返回 fun 函数定义中出现的输入参数的数目。
如果该函数定义中包含 varargin,那么 nargin 返回输入数目的负数。
例如,如果 myFun 函数声明输入 a、b 渣扰和 varargin,那么 nargin('myFun') 返回 -3。
4.输入参数
fun - 函数
nargin 从该函数的定义中返回其输入参数数目;指定为函数句柄、字符向量或字符串标量。
参考资料来源:MathWorks中国—函数输入参数数目
nargin对应varargin的个数,是一个数值,而varargin用来存入输入变量,以元胞数组形式存储
nargout对应varargout的个数,是一个数值,而varargout用来存入输出变量,以元胞数组形式存储。
例子:
function qiujuli(varargin)%求两点间距离
%%%%使用方法:qiujuli([2 3]),qiujuli([2 3],[4 5]),
if nargin==0
disp('未输入,请至少输入一点坐标值')
end
if nargin==1
x1=varargin{1}
d=sum(x1.^2)^0.5
disp('输入只有一点,则求其距原点距离为:')
disp(['距离d=' num2str(d)])
end
if nargin==2
x1=varargin{1}
x2=varargin{2}
x=x1-x2
d=sum(x.^2)^0.5
disp('输入有两点,则求这两点距离为:')
disp(['距离d=' num2str(d)])
end
if nargin>2
disp('输入超过两个点,请至多输入两点坐标值')
end
end
nargin为“number of input arguments”的缩写。 在matlab中定义一个函数时, 在函数体内部, nargin是用来判断输入变量个数的函数。在matlab命令窗口中输入help nargin或者doc nargin即可获得该函数的帮助信息。
nargin通过调用当前正在执行的函数返回输入参数的数量,只在函数灶哗裂体内使用nargin语法功能。
nargin(fx)在函数fx的定义声明中返回输入隐闭参数的个数。如果函数包括varargin其定义,那么nargin返回的输入个数为负。例如函数foo输入有 a,b,和varargin三个参数,那么nargin('foo”)返回值为-3。
nargout的作用是在matlab中定义一个函数时, 在函数体内部, nargout指出了输出参数的个数(nargin指出了输入参数的个数)。 特别是在利用了可变参数列表的函数中,芦雀 用nargout获取输出参数个数很方便。
语法
nargout
nargout(fun)
相关:varargout、nargin、varargin
应用举例
function varargout = foo(varargin)
fprintf('How many output arguments? %d\n', nargout)
for k=1:nargout
varargout(k) = {varargin{k}}
end
end
输出结果
>>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
nargin表示所定义(或引用)的函数的输入参散早数的个数,看下面这个例子就能理解了。
function Output = testfun(Input1 , Input2, Input3, Input4)if nargin < 1 % 如果输入参数的个数=0, 则输出0
Output = 0
elseif nargin < 2 % 如果输入参数的个数=1, 则输出11
Output = 11
elseif nargin <桐滚 3 % 如果输入参数的个数=2, 则输出22
Output = 22
elseif nargin < 4 % 如果输入参数的个数=3, 则输出33
Output = 33
else
Output = 44 % 其他情况, 则输出44
end
end
在命令窗口中输入
a = [0,0,0,0]a(1) = testfun()
a(2) = testfun(5634)
a(3) = testfun(8782,424)
a(4) = 局掘余testfun(35435,3535,436,465)
a
可以得到结果如下图
图 命令窗口运行结果
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)