《数学建模案例MATLAB实用程序百例.pdf》由会员分享,可在线阅读,更多相关《数学建模案例MATLAB实用程序百例.pdf(206页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/1.txt2010/5/14 1:14:29 MATLAB实用程序百例 实例1:三角函数曲线(1)function shili01 h0=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)
2、function shili02 h0=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 on xlabel(自变量X);ylabel(函数值Y);title(三角函数);file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/1.txt2010/5/14 1:14:29 实例3:图形的叠加 function shili03 h0=figure(toolbar,none,.p
3、osition,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 on xlabel(自变量X);ylabel(函数值Y);title(三角函数);实例4:双y轴图形的绘制 function shili04 h0=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=plot
4、yy(x,y1,x,y2,semilogy,plot);axes(haxes(1)ylabel(semilog plot);file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/1.txt2010/5/14 1:14:29 axes(haxes(2)ylabel(linear plot);实例5:单个轴窗口显示多个图形 function shili05 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例05);t=0:pi/10:2*pi;x,y=meshgrid(t);subplot(2,2,
5、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 shili06 h0=figure(toolbar,none,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/1
6、.txt2010/5/14 1:14:29 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
7、),.fontsize,16)text(x(imax),y(imax),.leftarrow最大值=,num2str(y(imax),.fontsize,16)实例7:条形图形 function shili07 h0=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值);file:/E|/Document/发展篇/
8、M&M/竞赛篇/常用算法/matlab 实例/1.txt2010/5/14 1:14:29 h1=gca;h2=axes(position,get(h1,position);plot(t,tiao2,linewidth,3)set(h2,yaxislocation,right,color,none,xticklabel,)实例8:区域图形 function shili08 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例08);x=91:95;profits1=88 75 84 93 77;profits2=51 64 54 5
9、6 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 on area(x,profits2,facecolor,0.9 0.85 0.7,.edgecolor,y,.linewidth,3)hold on area(x,profits3,facecolor,0.3 0.6 0.7,.edgecolor,r,.linewidth,3)hold on area(x,profits4,facecolor,0.6 0
10、.5 0.9,.edgecolor,m,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/1.txt2010/5/14 1:14:29 linewidth,3)hold off set(gca,xtick,91:95)set(gca,layer,top)gtext(leftarrow第一季度销量)gtext(leftarrow第二季度销量)gtext(leftarrow第三季度销量)gtext(leftarrow第四季度销量)xlabel(年,fontsize,16);ylabel(销售量,fontsize,16);实例9:饼图的绘制 function
11、 shili09 h0=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);file:/E|/Document/
12、发展篇/M&M/竞赛篇/常用算法/matlab 实例/1.txt2010/5/14 1:14:29 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
13、:阶梯图 function shili10 h0=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 on plot(t,f,:*)hold off glabel=函数e-(alpha*t)sinbeta*t的阶梯图;gtext(glabel,fontsize,16)xlabel(t=0:10,fontsize,16)axis(0 10-1.2 1.2)file:/E|/Document/发展篇/M&M/竞赛篇/常用
14、算法/matlab 实例/2.txt2010/5/14 1:14:29 实例11:枝干图 function shili11 h0=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 on h2=plot(x,y1,r,x,y2,*g);hold off h3=h1(1);h2;legend(h3,y1+y2,y1=sin(x),y2=cos(x)xlabel(自变量X);ylabel(函数值Y);title(正弦函数与
15、余弦函数的线性组合);实例12:罗盘图 function shili12 h0=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;file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/2.txt2010/5/14 1:14:29 rdirection=winddirection*pi/180;x,y=pol2ca
16、rt(rdirection,windpower);compass(x,y);desc=风向和风力,北京气象台,10月1日0:00到,10月1日12:00;gtext(desc)实例13:轮廓图 function shili13 h0=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 equal xlabel(
17、实部,fontsize,16);ylabel(虚部,fontsize,16);h=polar(0 2*pi,0 1);delete(h)hold on contour(x,y,abs(f),20)file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/2.txt2010/5/14 1:14:29 实例14:交互式图形 function shili14 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例14);axis(0 10 0 10);hold on x=;y=;n=0;disp(单击鼠标左键
18、点取需要的点);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;end t=1:n;ts=1:0.1:n;xs=spline(t,x,ts);ys=spline(t,y,ts);plot(xs,ys,r-);hold off 实例14:交互式图形file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/2.txt2010/5/14 1:14:29 function shili14
19、 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例14);axis(0 10 0 10);hold on x=;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;end t=1:n;ts=1:0.1:n;xs=spline(t,x,ts);ys=spline(t,y,ts);plot(xs,ys,
20、r-);hold off 实例15:变换的傅立叶函数曲线 function shili15file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/2.txt2010/5/14 1:14:29 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例15);axis equal m=moviein(20,gcf);set(gca,nextplot,replacechildren)h=uicontrol(style,slider,position,.100 10 500 20,min,1,max,20)fo
21、r j=1:20 plot(fft(eye(j+16)set(h,value,j)m(:,j)=getframe(gcf);end clf;axes(position,0 0 1 1);movie(m,30)实例16:劳伦兹非线形方程的无序活动 function shili15 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例15);axis equal m=moviein(20,gcf);set(gca,nextplot,replacechildren)h=uicontrol(style,slider,position,.10
22、0 10 500 20,min,1,max,20)for j=1:20 plot(fft(eye(j+16)file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/2.txt2010/5/14 1:14:29 set(h,value,j)m(:,j)=getframe(gcf);end clf;axes(position,0 0 1 1);movie(m,30)实例17:填充图 function shili17 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例17);t=(1:2:15)*pi/
23、8;x=sin(t);y=cos(t);fill(x,y,r)axis square off text(0,0,STOP,.color,1 1 1,.fontsize,50,.horizontalalignment,center)实例18:条形图和阶梯形图 function shili18 h0=figure(toolbar,none,.position,200 150 450 250,.name,实例18);subplot(2,2,1)x=-3:0.2:3;file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/2.txt2010/5/14 1:14:29
24、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 shili19 h0=figure(toolbar,non
25、e,.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);file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/2.txt2010/5/14 1:14:29 z1=zeros(size(x);z2=0.5*z1;z3=z1;plot3(x,y1,z1,x,y2,z2,x,y3,z3)grid on xlabel(X轴);ylabel(Y轴);zlabel(Z轴);title(Figure1:3-D
26、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 on xlabel(X轴);ylabel(Y轴);zlabel(Z轴);title(Figure2:3-D Plot)file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/3.txt2010/5/14 1:14:30 实例20:图形的隐藏属性 function shili20
27、h0=figure(toolbar,none,.position,200 150 450 300,.name,实例20);subplot(1,2,1)x,y,z=sphere(10);mesh(x,y,z)axis off title(Figure1:Opaque)hidden on subplot(1,2,2)x,y,z=sphere(10);mesh(x,y,z)axis off title(Figure2:Transparent)hidden off 实例21PEAKS函数曲线 function shili21 h0=figure(toolbar,none,.position,200 1
28、00 450 450,.name,实例21);x,y,z=peaks(30);subplot(2,1,1)x=x(1,:);y=y(:,1);i=find(y0.8&y-0.6&x0.8&y-0.6&xn,.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
29、(e3,string,q);k3=uicontrol(parent,h0,.style,pushbutton,.position,280 100 50 30,.string,关闭,.callback,close);file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/4.txt2010/5/14 1:14:30 e1=uicontrol(parent,h0,.style,edit,.position,60 30 60 20);t1=uicontrol(parent,h0,.style,text,.string,循环次数,.position,60 50 60
30、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(tool
31、bar,none,.position,200 150 450 250,.name,实例33);x=0:0.5:2*pi;y=sin(x);h=plot(x,y);file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/4.txt2010/5/14 1:14:30 grid on huidiao=.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,余弦函数),.del
32、ete(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,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/4.txt2010/5/14 1:14:30 pos
33、ition,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,toggle
34、button,.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,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/4.txt2010/5/14 1:14:30 name,实例35);f=Please input the letter;huidiao1=.g
35、=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,.Horiz
36、ontalAlignment,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,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/4.txt2010/5/14 1:14:30 string,大写变小写,.pos
37、ition,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 on hm=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);
38、,.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);,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/4.txt2010/5/14 1:14:30 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
39、on,.end;set(hm,callback,huidiao)set(gca,position,0.2 0.2 0.6 0.6)title(弹出式菜单的使用)hold onfile:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/5.txt2010/5/14 1:14:31 实例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=
40、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,.positi
41、on,200 150 450 250,.name,实例38);file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/5.txt2010/5/14 1:14:31 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
42、(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;file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/5.txt2010/5
43、/14 1:14:31 y=cos(x);h=plot(x,y);grid on set(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
44、);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),.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/5.tx
45、t2010/5/14 1:14:31 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;,.m
46、esh(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),.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/5.txt2010/5/14
47、1:14:31 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(
48、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,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法/matlab 实例/5.txt2010/5/14 1:14:31 axis off,.set(h32,checked,on),.set(h31,
49、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=ge
50、t(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);,.file:/E|/Document/发展篇/M&M/竞赛篇/常用算法