|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
“变长度”输入输出宗量(参数数量可变的)
最近在看张志涌的matlab6.5, 书写得很好,有很多东西值得分享,这是一个边写输入参数和输出结果都是变化的实例, 大家不妨仔细看看,相信对大家有帮助..
【例7.5.2-1】变长度宗量使用示例。
(1) 主程序
[exm07052_1.m]
- function varargout = exm07052_1(r,varargin)
- %RINGZY Plot a ring and calculate the area of the ring.
- %
- %
- vin=length(varargin);Nin=vin+1; % <11>
- error(nargchk(1,Nin,nargin)) %
- if nargout>6 %
- error('Too many output arguments')
- end
- t=0:pi/20:2*pi;x=r*exp(i*t);s=pi*r*r;
- if nargout==0
- switch Nin
- case 1
- plot(x,'b')
- case 2
- r2=varargin{1}; %<22>
- x2=r2*exp(i*t);
- plot(x,'b');hold on ;plot(x2,'b');hold off
- otherwise
- r2=varargin{1}; %<26>
- x2=r2*exp(i*t);
- plot(x,varargin{2:end});hold on % <28>
- plot(x2,varargin{2:end});hold off % <29>
- end;
- axis('square')
- else
- varargout{1}=real(x);varargout{2}=imag(x); %<33>
- varargout{5}=pi*r*r;varargout{6}=[]; %<34>
- if Nin>1
- r2=varargin{1}; %<36>
- x2=r2*exp(i*t);
- varargout{3}=real(x2);varargout{4}=imag(x2); %<38>
- varargout{6}=pi*(r^2-r2^2); %<39>
- end;
- end
复制代码
(2)调用格式1
- r1=1;r2=3;
- [x1,y1,x2,y2,s1,s2]=exm07052_1(r1);
- [x1,y1,x2,y2]=exm07052_1(r1,r2);
- [x1,y1,x2,y2,s1,s2]=exm07052_1(r1,r2);
复制代码
(3)调用格式2
- r1=1;r2=0.6;
- subplot(1,3,1),exm07052_1(r1,r2),
- subplot(1,3,2),exm07052_1(r1,r2,'Marker','o')
- subplot(1,3,3),exm07052_1(r1,r2,'LineWidth',5,'Color',[1 0.4 0])
复制代码
[ 本帖最后由 yejet 于 2006-11-11 16:01 编辑 ] |
评分
-
1
查看全部评分
-
|