nargin函数的用法
2013-11-19 19:47
357 查看
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值,如下面的函数。
函数文件examp.m:
function fout=charray(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
命令文件mydemo.m:
x=[1:3];y=[1;2;3];
examp(x)
examp(x,y')
examp(x,y,3)
执行mydemo.m 后的输出是:
ans =
1 2 3
ans =
2 4 6
ans =
21
例子,函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。
function y=test1(a,b)
if nargin==0
a=0;b=0;
elseif nargin==1
b=0;
end
y=a+b;
function x=maiter(phi,x0,ep,N)
%x=chat3_ex3maiter(inline('x-(x-exp(-x))/(1+x)'),0.5,1e-5,400)
if nargin<4,N=500; end
if nargin<3,ep=1e4; end
k=0;
while k<N
x=f(phi,x0);
if abs(x-x0)<ep
break;
end
x0=x;k=k+1;
end
if k==N,warning('已达迭代次数上限'); end
disp(['k=',num2str(k)])
这是一个迭代求方程解的Matlab程序,请问if nargin<4,N=500;end和if nargin<3,ep=1e4;end这两个语句在这个程序中起什么作用?
NARGIN表示输入变量的个数,程序中的意思是如果输入参数小于4个,则N默认为500,如果输入参数小于3个,默认输入参数EP=1E4
这就是说输入的变量式4各的时候是那样运行,输入变量式3各式运行以后的程序
函数文件examp.m:
function fout=charray(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
命令文件mydemo.m:
x=[1:3];y=[1;2;3];
examp(x)
examp(x,y')
examp(x,y,3)
执行mydemo.m 后的输出是:
ans =
1 2 3
ans =
2 4 6
ans =
21
例子,函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。
function y=test1(a,b)
if nargin==0
a=0;b=0;
elseif nargin==1
b=0;
end
y=a+b;
function x=maiter(phi,x0,ep,N)
%x=chat3_ex3maiter(inline('x-(x-exp(-x))/(1+x)'),0.5,1e-5,400)
if nargin<4,N=500; end
if nargin<3,ep=1e4; end
k=0;
while k<N
x=f(phi,x0);
if abs(x-x0)<ep
break;
end
x0=x;k=k+1;
end
if k==N,warning('已达迭代次数上限'); end
disp(['k=',num2str(k)])
这是一个迭代求方程解的Matlab程序,请问if nargin<4,N=500;end和if nargin<3,ep=1e4;end这两个语句在这个程序中起什么作用?
NARGIN表示输入变量的个数,程序中的意思是如果输入参数小于4个,则N默认为500,如果输入参数小于3个,默认输入参数EP=1E4
这就是说输入的变量式4各的时候是那样运行,输入变量式3各式运行以后的程序
相关文章推荐
- data.strip().split(',')的用法 python
- Android Looper和Handler
- hdu2083
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- android开发开源宝贝——持续更新。。。
- 数据结构学习笔记2——静态链表
- 20131119记录
- hdu2083
- [内存管理]linux X86_64处理器的内存布局图
- [内存管理]linux X86_64处理器的内存布局图
- 利用DisplayMetrics获取屏幕信息
- Java基础重温(十二)-scjp 4
- iOS7 UI改变总结
- Is it a bug in MySQL or in java-connector?——转
- 各种手机的SD卡
- [css layout][15]Liquid, secondary columns fixed-width
- Cisco 路由器启动过程详解及重置密码的原理
- Android签名
- Red Hat 6.2中chattr命令的使用方法
- VIM6:linux终端下的英文字典--SDCV