正文

matlab实用程序百例12007-10-14 13:07:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zhaoxn04/30108.html

分享到:

1-32是:图形应用篇 33-66是:界面设计篇 67-84是:图形处理篇 85-100是:数值分析篇   实例1:三角函数曲线(1) function shili01h0=figure('toolbar','none',...    'position',[198 56 350 300],...    'name','实例01');h1=axes('parent',h0,...   'visible','off');x=-pi:0.05:pi;y=sin(x);plot(x,y);xlabel('自变量X');ylabel('函数值Y');title('SIN( )函数曲线');grid on 实例2:三角函数曲线(2) function shili02h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例02');x=-pi:0.05:pi;y=sin(x)+cos(x);plot(x,y,'-*r','linewidth',1);grid onxlabel('自变量X');ylabel('函数值Y');title('三角函数'); 实例3:图形的叠加 function shili03h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例03');x=-pi:0.05:pi;y1=sin(x);y2=cos(x);plot(x,y1,...    '-*r',...    x,y2,...    '--og');grid onxlabel('自变量X');ylabel('函数值Y');title('三角函数'); 实例4:双y轴图形的绘制 function shili04h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例04');x=0:900;a=1000;b=0.005;y1=2*x;y2=cos(b*x);[haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot');axes(haxes(1))ylabel('semilog plot');axes(haxes(2))ylabel('linear plot'); 实例5:单个轴窗口显示多个图形 function shili05h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例05');t=0:pi/10:2*pi;[x,y]=meshgrid(t);subplot(2,2,1)plot(sin(t),cos(t))axis equal subplot(2,2,2)z=sin(x)-cos(y);plot(t,z)axis([0 2*pi -2 2]) subplot(2,2,3)h=sin(x)+cos(y);plot(t,h)axis([0 2*pi -2 2]) subplot(2,2,4)g=(sin(x).^2)-(cos(y).^2);plot(t,g)axis([0 2*pi -1 1]) 实例6:图形标注 function shili06h0=figure('toolbar','none',...    'position',[200 150 450 400],...    'name','实例06');t=0:pi/10:2*pi;h=plot(t,sin(t));xlabel('t=0到2\pi','fontsize',16);ylabel('sin(t)','fontsize',16);title('\it{从 0to2\pi 的正弦曲线}','fontsize',16)x=get(h,'xdata');y=get(h,'ydata');imin=find(min(y)==y);imax=find(max(y)==y);text(x(imin),y(imin),...    ['\leftarrow最小值=',num2str(y(imin))],...    'fontsize',16)text(x(imax),y(imax),...    ['\leftarrow最大值=',num2str(y(imax))],...    'fontsize',16)    实例7:条形图形 function shili07h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例07');tiao1=[562 548 224 545 41 445 745 512];tiao2=[47 48 57 58 54 52 65 48];t=0:7;bar(t,tiao1)xlabel('X轴');ylabel('TIAO1值');h1=gca;h2=axes('position',get(h1,'position'));plot(t,tiao2,'linewidth',3)set(h2,'yaxislocation','right','color','none','xticklabel',[]) 实例8:区域图形 function shili08h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例08');x=91:95;profits1=[88 75 84 93 77];profits2=[51 64 54 56 68];profits3=[42 54 34 25 24];profits4=[26 38 18 15 4];area(x,profits1,'facecolor',[0.5 0.9 0.6],...    'edgecolor','b',...    'linewidth',3)hold onarea(x,profits2,'facecolor',[0.9 0.85 0.7],...    'edgecolor','y',...    'linewidth',3)hold onarea(x,profits3,'facecolor',[0.3 0.6 0.7],...    'edgecolor','r',...    'linewidth',3)hold onarea(x,profits4,'facecolor',[0.6 0.5 0.9],...    'edgecolor','m',...    'linewidth',3)hold offset(gca,'xtick',[91:95])set(gca,'layer','top')gtext('\leftarrow第一季度销量')gtext('\leftarrow第二季度销量')gtext('\leftarrow第三季度销量')gtext('\leftarrow第四季度销量')xlabel('年','fontsize',16);ylabel('销售量','fontsize',16); 实例9:饼图的绘制 function shili09h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例09');t=[54 21 35;    68 54 35;    45 25 12;    48 68 45;    68 54 69];x=sum(t);h=pie(x);textobjs=findobj(h,'type','text');str1=get(textobjs,{'string'});val1=get(textobjs,{'extent'});oldext=cat(1,val1{:});names={'商品一:';'商品二:';'商品三:'};str2=strcat(names,str1);set(textobjs,{'string'},str2)val2=get(textobjs,{'extent'});newext=cat(1,val2{:});offset=sign(oldext(:,1)).*(newext(:,3)-oldext(:,3))/2;pos=get(textobjs,{'position'});textpos=cat(1,pos{:});textpos(:,1)=textpos(:,1)+offset;set(textobjs,{'position'},num2cell(textpos,[3,2])) 实例10:阶梯图 function shili10h0=figure('toolbar','none',...    'position',[200 150 450 400],...    'name','实例10');a=0.01;b=0.5;t=0:10;f=exp(-a*t).*sin(b*t);stairs(t,f)hold onplot(t,f,':*')hold offglabel='函数e^{-(\alpha*t)}sin\beta*t的阶梯图';gtext(glabel,'fontsize',16)xlabel('t=0:10','fontsize',16)axis([0 10 -1.2 1.2]) 实例11:枝干图 function shili11h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例11');x=0:pi/20:2*pi;y1=sin(x);y2=cos(x);h1=stem(x,y1+y2);hold onh2=plot(x,y1,'^r',x,y2,'*g');hold offh3=[h1(1);h2];legend(h3,'y1+y2','y1=sin(x)','y2=cos(x)')xlabel('自变量X');ylabel('函数值Y');title('正弦函数与余弦函数的线性组合'); 实例12:罗盘图 function shili12h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例12');winddirection=[54 24 65 84     256 12 235 62     125 324 34 254];windpower=[2 5 5 3     6 8 12 7     6 14 10 8];rdirection=winddirection*pi/180;[x,y]=pol2cart(rdirection,windpower);compass(x,y);desc={'风向和风力',    '北京气象台',    '10月1日0:00到',    '10月1日12:00'};gtext(desc) 实例13:轮廓图 function shili13h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例13');[th,r]=meshgrid((0:10:360)*pi/180,0:0.05:1);[x,y]=pol2cart(th,r);z=x+i*y;f=(z.^4-1).^(0.25);contour(x,y,abs(f),20)axis equalxlabel('实部','fontsize',16);ylabel('虚部','fontsize',16);h=polar([0 2*pi],[0 1]);delete(h)hold oncontour(x,y,abs(f),20) 实例14:交互式图形 function shili14h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例14');axis([0 10 0 10]);hold onx=[];y=[];n=0;disp('单击鼠标左键点取需要的点');disp('单击鼠标右键点取最后一个点');but=1;while but==1    [xi,yi,but]=ginput(1);    plot(xi,yi,'bo')    n=n+1;    disp('单击鼠标左键点取下一个点');    x(n,1)=xi;    y(n,1)=yi;endt=1:n;ts=1:0.1:n;xs=spline(t,x,ts);ys=spline(t,y,ts);plot(xs,ys,'r-');hold off 实例14:交互式图形 function shili14h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例14');axis([0 10 0 10]);hold onx=[];y=[];n=0;disp('单击鼠标左键点取需要的点');disp('单击鼠标右键点取最后一个点');but=1;while but==1    [xi,yi,but]=ginput(1);    plot(xi,yi,'bo')    n=n+1;    disp('单击鼠标左键点取下一个点');    x(n,1)=xi;    y(n,1)=yi;endt=1:n;ts=1:0.1:n;xs=spline(t,x,ts);ys=spline(t,y,ts);plot(xs,ys,'r-');hold off 实例15:变换的傅立叶函数曲线 function shili15h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例15');axis equalm=moviein(20,gcf);set(gca,'nextplot','replacechildren')h=uicontrol('style','slider','position',...    [100 10 500 20],'min',1,'max',20)for j=1:20    plot(fft(eye(j+16)))    set(h,'value',j)    m(:,j)=getframe(gcf);endclf;axes('position',[0 0 1 1]);movie(m,30) 实例16:劳伦兹非线形方程的无序活动 function shili15h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例15');axis equalm=moviein(20,gcf);set(gca,'nextplot','replacechildren')h=uicontrol('style','slider','position',...    [100 10 500 20],'min',1,'max',20)for j=1:20    plot(fft(eye(j+16)))    set(h,'value',j)    m(:,j)=getframe(gcf);endclf;axes('position',[0 0 1 1]);movie(m,30) 实例17:填充图 function shili17h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例17');t=(1:2:15)*pi/8;x=sin(t);y=cos(t);fill(x,y,'r')axis square offtext(0,0,'STOP',...    'color',[1 1 1],...    'fontsize',50,...    'horizontalalignment','center') 例18:条形图和阶梯形图 function shili18h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例18');subplot(2,2,1)x=-3:0.2:3;y=exp(-x.*x);bar(x,y)title('2-D Bar Chart') subplot(2,2,2)x=-3:0.2:3;y=exp(-x.*x);bar3(x,y,'r')title('3-D Bar Chart') subplot(2,2,3)x=-3:0.2:3;y=exp(-x.*x);stairs(x,y)title('Stair Chart') subplot(2,2,4)x=-3:0.2:3;y=exp(-x.*x);barh(x,y)title('Horizontal Bar Chart') 实例19:三维曲线图 function shili19h0=figure('toolbar','none',...    'position',[200 150 450 400],...    'name','实例19');subplot(2,1,1)x=linspace(0,2*pi);y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);z1=zeros(size(x));z2=0.5*z1;z3=z1;plot3(x,y1,z1,x,y2,z2,x,y3,z3)grid onxlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure1:3-D Plot') subplot(2,1,2)x=linspace(0,2*pi);y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);z1=zeros(size(x));z2=0.5*z1;z3=z1;plot3(x,z1,y1,x,z2,y2,x,z3,y3)grid onxlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure2:3-D Plot') 实例20:图形的隐藏属性 function shili20h0=figure('toolbar','none',...    'position',[200 150 450 300],...    'name','实例20');subplot(1,2,1)[x,y,z]=sphere(10);mesh(x,y,z)axis offtitle('Figure1:Opaque')hidden on subplot(1,2,2)[x,y,z]=sphere(10);mesh(x,y,z)axis offtitle('Figure2:Transparent')hidden off 实例21PEAKS函数曲线 function shili21h0=figure('toolbar','none',...    'position',[200 100 450 450],...    'name','实例21');[x,y,z]=peaks(30);subplot(2,1,1)x=x(1,:);y=y(:,1);i=find(y>0.8&y<1.2);j=find(x>-0.6&x<0.5);z(i,j)=nan*z(i,j);surfc(x,y,z)xlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure1:surfc函数形成的曲面') subplot(2,1,2)x=x(1,:);y=y(:,1);i=find(y>0.8&y<1.2);j=find(x>-0.6&x<0.5);z(i,j)=nan*z(i,j);surfl(x,y,z)xlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure2:surfl函数形成的曲面') 实例22:片状图 function shili22h0=figure('toolbar','none',...    'position',[200 150 550 350],...    'name','实例22');subplot(1,2,1)x=rand(1,20);y=rand(1,20);z=peaks(x,y*pi);t=delaunay(x,y);trimesh(t,x,y,z)hidden offtitle('Figure1:Triangular Surface Plot'); subplot(1,2,2)x=rand(1,20);y=rand(1,20);z=peaks(x,y*pi);t=delaunay(x,y);trisurf(t,x,y,z)title('Figure1:Triangular Surface Plot'); 实例23:视角的调整 function shili23h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例23');x=-5:0.5:5;[x,y]=meshgrid(x);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;subplot(2,2,1)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure1')view(-37.5,30) subplot(2,2,2)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure2')view(-37.5+90,30) subplot(2,2,3)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure3')view(-37.5,60) subplot(2,2,4)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure4')view(180,0) 实例24:向量场的绘制 function shili24h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例24');subplot(2,2,1)z=peaks;ribbon(z)title('Figure1') subplot(2,2,2)[x,y,z]=peaks(15);[dx,dy]=gradient(z,0.5,0.5);contour(x,y,z,10)hold onquiver(x,y,dx,dy)hold offtitle('Figure2') subplot(2,2,3)[x,y,z]=peaks(15);[nx,ny,nz]=surfnorm(x,y,z);surf(x,y,z)hold onquiver3(x,y,z,nx,ny,nz)hold offtitle('Figure3') subplot(2,2,4)x=rand(3,5);y=rand(3,5);z=rand(3,5);c=rand(3,5);fill3(x,y,z,c)grid ontitle('Figure4') 实例25:灯光定位 function shili25h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例25');vert=[1 1 1;1 2 1;    2 2 1;2 1 1;    1 1 2;1 2 2;    2 2 2;2 1 2];fac=[1 2 3 4;2 6 7 3;    4 3 7 8;1 5 8 4;    1 2 6 5;5 6 7 8];grid offsphere(36)h=findobj('type','surface');set(h,'facelighting','phong',...    'facecolor',...    'interp',...    'edgecolor',[0.4 0.4 0.4],...    'backfacelighting',...    'lit')hold onpatch('faces',fac,'vertices',vert,...    'facecolor','y');light('position',[1 3 2]);light('position',[-3 -1 3]);material shinyaxis vis3d offhold off 实例26:柱状图 function shili26h0=figure('toolbar','none',...    'position',[200 50 450 450],...    'name','实例26');subplot(2,1,1)x=[5 2 1    8 7 3    9 8 6    5 5 5    4 3 2];bar(x)xlabel('X轴');ylabel('Y轴');title('第一子图'); subplot(2,1,2)y=[5 2 1    8 7 3    9 8 6    5 5 5    4 3 2];barh(y)xlabel('X轴');ylabel('Y轴');title('第二子图'); 实例27:设置照明方式 function shili27h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例27');subplot(2,2,1)sphereshading flatcamlight leftcamlight rightlighting flatcolorbaraxis offtitle('Figure1') subplot(2,2,2)sphereshading flatcamlight leftcamlight rightlighting gouraudcolorbaraxis offtitle('Figure2') subplot(2,2,3)sphereshading interpcamlight rightcamlight leftlighting phongcolorbaraxis offtitle('Figure3') subplot(2,2,4)sphereshading flatcamlight leftcamlight rightlighting nonecolorbaraxis offtitle('Figure4') 实例28:羽状图 function shili28h0=figure('toolbar','none',...    'position',[200 150 450 350],...    'name','实例28');subplot(2,1,1)alpha=90:-10:0;r=ones(size(alpha));m=alpha*pi/180;n=r*10;[u,v]=pol2cart(m,n);feather(u,v)title('羽状图')axis([0 20 0 10]) subplot(2,1,2)t=0:0.5:10;x=0.05+i;y=exp(-x*t);feather(y)title('复数矩阵的羽状图') 实例29:立体透视(1) function shili29h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例29');[x,y,z]=meshgrid(-2:0.1:2,...    -2:0.1:2,...    -2:0.1:2);v=x.*exp(-x.^2-y.^2-z.^2);grid onfor i=-2:0.5:2;    h1=surf(linspace(-2,2,20),...        linspace(-2,2,20),...        zeros(20)+i);    rotate(h1,[1 -1 1],30)    dx=get(h1,'xdata');    dy=get(h1,'ydata');    dz=get(h1,'zdata');    delete(h1)    slice(x,y,z,v,[-2 2],2,-2)    hold on    slice(x,y,z,v,dx,dy,dz)    hold off    axis tight    view(-5,10)    drawnowend 实例30:立体透视(2) function shili30h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例30');[x,y,z]=meshgrid(-2:0.1:2,...    -2:0.1:2,...    -2:0.1:2);v=x.*exp(-x.^2-y.^2-z.^2);[dx,dy,dz]=cylinder;slice(x,y,z,v,[-2 2],2,-2)for i=-2:0.2:2    h=surface(dx+i,dy,dz);    rotate(h,[1 0 0],90)    xp=get(h,'xdata');    yp=get(h,'ydata');    zp=get(h,'zdata');    delete(h)    hold on    hs=slice(x,y,z,v,xp,yp,zp);    axis tight    xlim([-3 3])    view(-10,35)    drawnow    delete(hs)    hold offend 实例31:表面图形 function shili31h0=figure('toolbar','none',...    'position',[200 150 550 250],...    'name','实例31');subplot(1,2,1)x=rand(100,1)*16-8;y=rand(100,1)*16-8;r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;xlin=linspace(min(x),max(x),33);ylin=linspace(min(y),max(y),33);[X,Y]=meshgrid(xlin,ylin);Z=griddata(x,y,z,X,Y,'cubic');mesh(X,Y,Z)axis tighthold onplot3(x,y,z,'.','Markersize',20) subplot(1,2,2)k=5;n=2^k-1;theta=pi*(-n:2:n)/n;phi=(pi/2)*(-n:2:n)'/n;X=cos(phi)*cos(theta);Y=cos(phi)*sin(theta);Z=sin(phi)*ones(size(theta));colormap([0 0 0;1 1 1])C=hadamard(2^k);surf(X,Y,Z,C)axis square 实例32:沿曲线移动的小球 h0=figure('toolbar','none',...    'position',[198 56 408 468],...    'name','实例32');h1=axes('parent',h0,...    'position',[0.15 0.45 0.7 0.5],...    'visible','on');t=0:pi/24:4*pi;y=sin(t);plot(t,y,'b')n=length(t);h=line('color',[0 0.5 0.5],...    'linestyle','.',...    'markersize',25,...    'erasemode','xor');k1=uicontrol('parent',h0,...    'style','pushbutton',...    'position',[80 100 50 30],...    'string','开始',...    'callback',[...        'i=1;',...        'k=1;,',...        'm=0;,',...        'while 1,',...        'if k==0,',...        'break,',...        'end,',...        'if k~=0,',...        'set(h,''xdata'',t(i),''ydata'',y(i)),',...        'drawnow;,',...        'i=i+1;,',...        'if i>n,',...        'm=m+1;,',...        'i=1;,',...        'end,',...        'end,',...        'end']);k2=uicontrol('parent',h0,...    'style','pushbutton',...    'position',[180 100 50 30],...    'string','停止',...    'callback',[...        'k=0;,',...        'set(e1,''string'',m),',...        'p=get(h,''xdata'');,',...        'q=get(h,''ydata'');,',...                'set(e2,''string'',p);,',...        'set(e3,''string'',q)']);k3=uicontrol('parent',h0,...    'style','pushbutton',...    'position',[280 100 50 30],...    'string','关闭',...    'callback','close');e1=uicontrol('parent',h0,...    'style','edit',...    'position',[60 30 60 20]);t1=uicontrol('parent',h0,...    'style','text',...    'string','循环次数',...    'position',[60 50 60 20]);e2=uicontrol('parent',h0,...    'style','edit',...    'position',[180 30 50 20]);t2=uicontrol('parent',h0,...    'style','text',...    'string','终点的X坐标值',...    'position',[155 50 100 20]);e3=uicontrol('parent',h0,...    'style','edit',...    'position',[300 30 50 20]);t3=uicontrol('parent',h0,...    'style','text',...    'string','终点的Y坐标值',...    'position',[275 50 100 20]); 实例33:曲线转换按钮 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例33');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid onhuidiao=[...    'if i==1,',...    'i=0;,',...    'y=cos(x);,',...    'delete(h),',...    'set(hm,''string'',''正弦函数''),',...    'h=plot(x,y);,',...    'grid on,',...    'else if i==0,',...    'i=1;,',...    'y=sin(x);,',...    'set(hm,''string'',''余弦函数''),',...    'delete(h),',...    'h=plot(x,y);,',...    'grid on,',...    'end,',...    'end'];hm=uicontrol(gcf,'style','pushbutton',...    'string','余弦函数',...    'callback',huidiao);i=1;set(hm,'position',[250 20 60 20]);set(gca,'position',[0.2 0.2 0.6 0.6])title('按钮的使用')hold on 实例34:栅格控制按钮 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例34');x=0:0.5:2*pi;y=sin(x);plot(x,y)huidiao1=[...        'set(h_toggle2,''value'',0),',...        'grid on,',...        ];huidiao2=[...        'set(h_toggle1,''value'',0),',...        'grid off,',...        ];h_toggle1=uicontrol(gcf,'style','togglebutton',...    'string','grid on',...    'value',0,...    'position',[20 45 50 20],...    'callback',huidiao1); h_toggle2=uicontrol(gcf,'style','togglebutton',...    'string','grid off',...    'value',0,...    'position',[20 20 50 20],...    'callback',huidiao2);set(gca,'position',[0.2 0.2 0.6 0.6])title('开关按钮的使用') 实例35:编辑框的使用 h0=figure('toolbar','none',...    'position',[200 150 350 250],...    'name','实例35');f='Please input the letter';huidiao1=[...        'g=upper(f);,',...        'set(h2_edit,''string'',g),',...    ];huidiao2=[...        'g=lower(f);,',...        'set(h2_edit,''string'',g),',...    ];h1_edit=uicontrol(gcf,'style','edit',...    'position',[100 200 100 50],...    'HorizontalAlignment','left',...    'string','Please input the letter',...    'callback','f=get(h1_edit,''string'');',...    'background','w',...    'max',5,...    'min',1);h2_edit=uicontrol(gcf,'style','edit',...    'HorizontalAlignment','left',...    'position',[100 100 100 50],...    'background','w',...    'max',5,...    'min',1);h1_button=uicontrol(gcf,'style','pushbutton',...    'string','小写变大写',...    'position',[100 45 100 20],...    'callback',huidiao1);h2_button=uicontrol(gcf,'style','pushbutton',...    'string','大写变小写',...    'position',[100 20 100 20],...    'callback',huidiao2); 实例36:弹出式菜单 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例36');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid onhm=uicontrol(gcf,'style','popupmenu',...    'string',...    'sin(x)|cos(x)|sin(x)+cos(x)|exp(-sin(x))',...    'position',[250 20 50 20]);set(hm,'value',1)huidiao=[...        'v=get(hm,''value'');,',...        'switch v,',...        'case 1,',...        'delete(h),',...        'y=sin(x);,',...        'h=plot(x,y);,',...        'grid on,',...        'case 2,',...        'delete(h),',...        'y=cos(x);,',...        'h=plot(x,y);,',...         'grid on,',...        'case 3,',...        'delete(h),',...        'y=sin(x)+cos(x);,',...        'h=plot(x,y);,',...         'grid on,',...        'case 4,',...        'delete(h),',...        'y=exp(-sin(x));,',...        'h=plot(x,y);,',...         'grid on,',...        'end'];set(hm,'callback',huidiao)set(gca,'position',[0.2 0.2 0.6 0.6])title('弹出式菜单的使用') 实例37:滑标的使用 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例37');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);h1=axes('position',...    [0.2 0.2 0.5 0.5],...    'visible','off');htext=uicontrol(gcf,...    'units','points',...    'position',[20 30 45 15],...    'string','brightness',...    'style','text');hslider=uicontrol(gcf,...    'units','points',...    'position',[10 10 300 15],...    'min',-1,...    'max',1,...    'style','slider',...    'callback',...    'brighten(get(hslider,''value''))'); 实例38:多选菜单 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例38');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);hlist=uicontrol(gcf,'style','listbox',...    'string','default|spring|summer|autumn|winter',...    'max',5,...    'min',1,...    'position',[20 20 80 100],...    'callback',[...        'k=get(hlist,''value'');,',...        'switch k,',...        'case 1,',...        'colormap default,',...        'case 2,',...        'colormap spring,',...        'case 3,',...        'colormap summer,',...        'case 4,',...        'colormap autumn,',...        'case 5,',...        'colormap winter,',...        'end']); 实例39:菜单控制的使用 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例39');x=0:0.5:2*pi;y=cos(x);h=plot(x,y);grid onset(gcf,'toolbar','none')hm=uimenu('label','example');huidiao1=[...        'set(hm_gridon,''checked'',''on''),',...        'set(hm_gridoff,''checked'',''off''),',...        'grid on'];huidiao2=[...        'set(hm_gridoff,''checked'',''on''),',...        'set(hm_gridon,''checked'',''off''),',...        'grid off'];hm_gridon=uimenu(hm,'label','grid on',...    'checked','on',...    'callback',huidiao1);hm_gridoff=uimenu(hm,'label','grid off',...    'checked','off',...    'callback',huidiao2); 实例40:UIMENU菜单的应用 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例40');h1=uimenu(gcf,'label','函数');h11=uimenu(h1,'label','轮廓图',...    'callback',[...        'set(h31,''checked'',''on''),',...        'set(h32,''checked'',''off''),',...        '[x,y,z]=peaks;,',...        'contour3(x,y,z,30)']);h12=uimenu(h1,'label','高斯分布',...    'callback',[...        'set(h31,''checked'',''on''),',...        'set(h32,''checked'',''off''),',...        'mesh(peaks);,',...        'axis tight']);h13=uimenu(h1,'label','Sinc函数',...    'callback',[...        'set(h31,''checked'',''on''),',...        'set(h32,''checked'',''off''),',...        '[x,y]=meshgrid(-8:0.5:8);,',...        'r=sqrt(x.^2+y.^2)+eps;,',...        'z=sin(r)./r;,',...        'mesh(x,y,z)']);h2=uimenu(gcf,'label','色彩');hl2(1)=uimenu(h2,'label','Default',...    'checked','on',...    'callback',...    [...        'set(hl2,''checked'',''off''),',...        'set(hl2(1),''checked'',''on''),',...        'colormap(''default'')']);hl2(2)=uimenu(h2,'label','spring',...    'callback',...    [...        'set(hl2,''checked'',''off''),',...        'set(hl2(2),''checked'',''on''),',...        'colormap(spring)']);hl2(3)=uimenu(h2,'label','Summer',...    'callback',...    [...        'set(hl2,''checked'',''off''),',...        'set(hl2(3),''checked'',''on''),',...        'colormap(summer)']);hl2(4)=uimenu(h2,'label','Autumn',...    'callback',...    [...        'set(hl2,''checked'',''off''),',...        'set(hl2(4),''checked'',''on''),',...        'colormap(autumn)']);hl2(5)=uimenu(h2,'label','Winter',...    'callback',...    [...        'set(hl2,''checked'',''off''),',...        'set(hl2(5),''checked'',''on''),',...        'colormap(winter)']);h3=uimenu(gcf,'label','坐标选项');h31=uimenu(h3,'label','Axis on',...    'callback',...    [...        'axis on,',...        'set(h31,''checked'',''on''),',...        'set(h32,''checked'',''off'')']);h32=uimenu(h3,'label','Axis off',...    'callback',...    [...        'axis off,',...        'set(h32,''checked'',''on''),',...        'set(h31,''checked'',''off'')']); 实例41:除法计算器 h=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例41');h1=uicontrol(gcf,'style','edit',...    'position',[80 200 100 20],...    'HorizontalAlignment','right',...    'callback',['m=get(h1,''string'');,',...        'a=str2num(m);']);h2=uicontrol(gcf,'style','edit',...    'HorizontalAlignment','right',...    'position',[80 150 100 20],...    'callback',['n=get(h2,''string'');,',...        'b=str2num(n);']);h3=uicontrol(gcf,'style','text',...    'string','被除数',...    'position',[80 230 100 20]);h4=uicontrol(gcf,'style','edit',...    'position',[80 50 100 20]);h5=uicontrol(gcf,'style','pushbutton',...    'position',[80 100 100 20],...    'string','=',...    'callback',[...        'if b==0,',...        'h7=errordlg(''除数不能为0!'',''error'',''on'');,',...        'else,',...        'k=a/b;,',...        'c=num2str(k);,',...        'set(h4,''string'',c),',...        'end']);h8=uicontrol(gcf,'style','text',...    'string','除数',...    'position',[80 175 100 20]);h9=uicontrol(gcf,'style','text',...    'string','商',...    'position',[80 75 100 20]); 实例42:单选框的使用 h0=figure('toolbar','none',...    'position',[200 150 450 250],...    'name','实例42');x=0:0.5:2*pi;y=sin(x);plot(x,y)grid onset(gcf,'toolbar','none')g=set(gca,'position',[0.2 0.2 0.6 0.6]);huidiao1=[...        'grid on,',...        'set(box_on,''value'',1),',...        'set(box_off,''value'',0),'];huidiao2=[...        'grid off,',...        'set(box_off,''value'',1),',...        'set(box_on,''value'',0),'];box_on=uicontrol(gcf,'style','radio',...    'position',[5 50 50 20],...    'string','grid on',...    'value',1,...    'callback',huidiao1);box_off=uicontrol(gcf,'style','radio',...    'position',[5 20 50 20],...    'string','grid off',...    'value',0,...    'callback',huidiao2);title('无线按钮的使用') 实例43:添加环境效果 h0=figure('toolbar','none',...    'position',[198 56 450 468],...    'name','实例43');h1=axes('parent',h0,...    'position',[0.15 0.45 0.7 0.5],...    'visible','off');sphereh=findobj('type','surface');shading interpaxis equall=light('position',[0 -2 1]);k(1)=get(h,'specularstrength');k(2)=get(h,'diffusestrength');k(3)=get(h,'specularexponent');k(4)=get(h,'specularcolorreflectance');u1=uimenu('parent',h0,...    'label','灯光效果',...    'tag','u1',...    'backgroundcolor',[0.75 0.75 0.75]);u11=uimenu('parent',u1,...    'label','gouraud',...    'tag','u11',...    'backgroundcolor',[0.75 0.75 0.75],...    'callback',[...        'set(u11,''checked'',''on'');,',...        'set(u12,''checked'',''off'');,',...        'set(h,''facelighting'',''gouraud'')']);u12=uimenu('parent',u1,...    'label','phong',...    'tag','u12',...    'backgroundcolor',[0.75 0.75 0.75],...    'callback',[...        'set(u11,''checked'',''off'');,',...        'set(u12,''checked'',''on'');,',...        'set(h,''facelighting'',''gouraud'')']);u2=uimenu('parent',h0,...    'label','背面灯光',...    'tag','u2',...    'backgroundcolor',[0.75 0.75 0.75]);u21=uimenu('parent',u2,...    'label','reverselit',...    'tag','u21',...    'checked','on',...    'backgroundcolor',[0.75 0.75 0.75],...    'callback',[...        'set(u21,''checked'',''on'');,',...        'set(u22,''checked'',''off'');,',...        'set(h,''backfacelighting'',''reverselit'')']);u22=uimenu('parent',u2,...    'label','reverselit',...    'tag','u22',...    'backgroundcolor',[0.75 0.75 0.75],...    'callback',[...        'set(u21,''checked'',''off'');,',...        'set(u22,''checked'',''on'');,',...        'set(h,''backfacelighting'',''reverselit'')']);s1=uicontrol('parent',h0,...    'units','points',...    'style','slider',...    'tag','s1',...    'min',0,...    'max',1,...    'value',k(1),...    'position',[20 80 100 15],...    'callback',[...        's1value=get(s1,''value'');,',...        'set(h,''specularstrength'',s1value)']);t1=uicontrol('parent',h0,...    'units','points',...    'style','text',...    'tag','t1',...    'string','镜面反射强度',...    'position',[20 97 100 15]);s2=uicontrol('parent',h0,...    'units','points',...    'style','slider',...    'tag','s2',...    'min',0,...    'max',1,...    'value',k(2),...    'position',[20 30 100 15],...    'callback',[...        's2value=get(s2,''value'');,',...        'set(h,''diffusestrength'',s2value)']);t2=uicontrol('parent',h0,...    'units','points',...    'style','text',...    'tag','t2',...    'string','漫反射强度',...    'position',[20 47 100 15]);s3=uicontrol('parent',h0,...    'units','points',...    'style','slider',...    'tag','s3',...    'min',0.1,...    'max',1,...    'value',k(3)/20,...    'position',[220 80 100 15],...    'callback',[...        's3value=get(s3,''value'')+eps;,',...        'set(h,''specularexponent'',20*s3value)']);t3=uicontrol('parent',h0,...    'units','points',...    'style','text',...    'tag','t3',...    'string','镜面指数',...    'position',[220 97 100 15]);s4=uicontrol('parent',h0,...    'units','points',...    'style','slider',...    'tag','s4',...    'min',0,...    'max',1,...    'value',k(4),...    'position',[220 30 100 15],...    'callback',[...        's4value=get(s4,''value'');,',...        'set(h,''specularcolorreflectance'',s4value)']);t4=uicontrol('parent',h0,...    'units','points',...    'style','text',...    'tag','t1',...    'string','镜面颜色反射比',...    'position',[220 47 100 15]);b1=uicontrol('parent',h0,...    'units','points',...    'style','pushbutton',...    'tag','b1',...    'string','关闭',...    'position',[145 45 50 30],...    'callback','close'); 实例44:改变坐标轴范围 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'); 实例45:简单运算器 h1=uicontrol(gcf,'style','radio',...    'string','加',...    'value',1,...    'position',[20 150 40 20],...    'callback',[...        'k=1;,',...        'set(h1,''value'',1),',...        'set(h2,''value'',0),',...        'set(h3,''value'',0)']);h2=uicontrol(gcf,'style','radio',...    'string','减',...    'position',[20 110 40 20],...    'callback',[...        'k=2;,',...        'set(h2,''value'',1),',...        'set(h1,''value'',0),',...        'set(h3,''value'',0)']);h3=uicontrol(gcf,'style','radio',...    'string','乘',...    'position',[20 70 40 20],...    'callback',[...        'k=3;,',...        'set(h3,''value'',1),',...        'set(h2,''value'',0),',...        'set(h1,''value'',0)']);e1=uicontrol(gcf,'style','edit',...    'position',[80 150 100 20]);e2=uicontrol(gcf,'style','edit',...    'position',[80 110 100 20]);e3=uicontrol(gcf,'style','edit',...    'position',[80 70 100 20]);b1=uicontrol(gcf,'style','pushbutton',...    'string','运算',...    'position',[200 150 80 30],...    'callback',[...        'x=str2num(get(e1,''string''));,',...        'y=str2num(get(e2,''string''));,',...        'switch k,',...        'case 1,',...        'z=x+y;,',...        'case 2,',...        'z=x-y;,',...        'case 3,',...        'z=x*y;,',...        'end,',...        'set(e3,''string'',num2str(z))']);b2=uicontrol(gcf,'style','pushbutton',...    'string','退出',...    'position',[200 100 80 30],...    'callback','close'); 实例46:曲线色彩的修改 h0=figure('toolbar','none',...    'position',[198 56 408 468],...    'name','my second gui');h1=axes('parent',h0,...    'position',[0.15 0.45 0.7 0.5],...    'visible','on');x=0:0.1:2*pi;k=plot(x,sin(x));xlabel('自变量X');ylabel('函数值Y');title('图形色彩改变');p1=uicontrol('parent',h0,...    'style','pushbutton',...    'backgroundcolor','r',...    'position',[60 100 50 30],...    'callback','set(k,''color'',''r'')');p2=uicontrol('parent',h0,...    'style','pushbutton',...    'backgroundcolor','g',...    'position',[170 100 50 30],...    'callback','set(k,''color'',''g'')');p3=uicontrol('parent',h0,...    'style','pushbutton',...    'backgroundcolor','b',...    'position',[280 100 50 30],...    'callback','set(k,''color'',''b'')');p4=uicontrol('parent',h0,...    'style','pushbutton',...    'backgroundcolor',[1 1 1],...    'fontsize',20,...    'fontweight','demi',...    'string','关闭',...    'position',[150 30 80 60],...    'callback','close');t1=uicontrol('parent',h0,...    'style','text',...    'string','红色',...    'fontsize',12,...    'fontweight','demi',...    'position',[60 120 50 20]);t2=uicontrol('parent',h0,...    'style','text',...    'string','绿色',...    'fontsize',12,...    'fontweight','demi',...    'position',[170 120 50 20]);t3=uicontrol('parent',h0,...    'style','text',...    'string','蓝色',...    'fontsize',12,...    'fontweight','demi',...    'position',[280 120 50 20]);    

阅读(4211) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册