matlab编程实例100例.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datematlab编程实例100例matlab编程实例100例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 equalsubplot(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到2pi','fontsize',16);ylabel('sin(t)','fontsize',16);title('it从 0to2pi 的正弦曲线','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)sinbeta*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 onsubplot(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,