gusucode.com > Matlab精彩编程100例源码程序 > Matlab精彩编程100例源码/work/shili44.m
h0=figure('toolbar','none',... 'position',[198 56 408 468],... 'name','实例44'); h1=axes('parent',h0,... 'position',[0.15 0.45 0.7 0.5],... 'visible','on'); e1=uicontrol('parent',h0,... 'style','edit',... 'string',1,... 'position',[50 120 50 20]); t1=uicontrol('parent',h0,... 'style','text',... 'string','X轴最小值',... 'position',[35 150 80 20]); e2=uicontrol('parent',h0,... 'style','edit',... 'string',5,... 'position',[50 60 50 20]); t2=uicontrol('parent',h0,... 'style','text',... 'string','X轴最大值',... 'position',[35 90 80 20]); e3=uicontrol('parent',h0,... 'style','edit',... 'string',1,... 'position',[150 120 50 20]); t3=uicontrol('parent',h0,... 'style','text',... 'string','Y轴最小值',... 'position',[135 150 80 20]); e4=uicontrol('parent',h0,... 'style','edit',... 'string',5,... 'position',[150 60 50 20]); t4=uicontrol('parent',h0,... 'style','text',... 'string','Y轴最大值',... 'position',[135 90 80 20]); e5=uicontrol('parent',h0,... 'style','edit',... 'string',20,... 'position',[250 120 50 20]); t5=uicontrol('parent',h0,... 'style','text',... 'horizontalalignment','left',... 'string','点数',... 'position',[250 150 30 20]); b1=uicontrol('parent',h0,... 'style','pushbutton',... 'string','绘图',... 'position',[250 60 60 40],... 'callback',[... 'a=str2num(get(e1,''string''));,',... 'b=str2num(get(e2,''string''));,',... 'c=str2num(get(e3,''string''));,',... 'd=str2num(get(e4,''string''));,',... 'n=str2num(get(e5,''string''));,',... 'xgrid=linspace(-abs(a),abs(a),n);,',... 'ygrid=linspace(-abs(b),abs(b),n);,',... '[x,y]=meshgrid(xgrid,ygrid);,',... 'z=c*sqrt(d-y.*y/b/b-x.*x/a/a);,',... 'u=1;,',... 'z1=real(z);,',... 'for k=2:n-1,',... 'for j=2:n-1,',... 'if imag(z(k,j))~=0,',... 'z1(k,j)=0;,',... 'end,',... 'if all(imag(z([k-1:k+1],[j-1:j+1])))~=0,',... 'z1(k,j)=nan;,',... 'end,',... 'end,',... 'end,',... 'surf(x,y,z1),',... 'hold on,',... 'if u==1,',... 'z2=-z1;,',... 'surf(x,y,z2),',... 'axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);,',... 'end,',... 'xlabel(''x'');,',... 'ylabel(''y'');,',... 'zlabel(''z'');,',... 'hold off']); b2=uicontrol('parent',h0,... 'style','pushbutton',... 'string','关闭',... 'position',[150 10 60 20],... 'callback','close');