MATLAB工程应用实例

合集下载

matlab编程实例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到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 84256 12 235 62125 324 34 254];windpower=[2 5 5 36 8 12 76 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:20plot(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:20plot(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;12 2;2 2 2;2 1 2];fac=[1 2 3 4;2 6 7 3;4 3 7 8;15 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 18 7 39 8 65 5 54 3 2];bar(x)xlabel('X轴');ylabel('Y轴');title('第一子图');subplot(2,1,2)y=[5 2 18 7 39 8 65 5 54 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 onslice(x,y,z,v,dx,dy,dz)hold offaxis tightview(-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:2h=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 onhs=slice(x,y,z,v,xp,yp,zp);axis tightxlim([-3 3])view(-10,35)drawnowdelete(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],...'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,',...'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菜单的应用。

MATLAB在工程设计中的应用与实例

MATLAB在工程设计中的应用与实例

MATLAB在工程设计中的应用与实例概述:MATLAB(矩阵实验室)是一种高级的数值计算和数据可视化软件,广泛应用于科学、工程和工业。

它的功能强大,可以通过编写算法和脚本来进行数据处理、模拟和分析。

在工程设计中,MATLAB的应用非常广泛,可以帮助工程师解决各种实际问题。

本文将介绍MATLAB在工程设计中的应用,并结合实例进行详细说明。

一、信号处理与滤波器设计在工程设计中,经常需要处理来自传感器或其他设备的信号。

MATLAB提供了丰富的信号处理工具箱,可以进行信号滤波、频域分析、谱估计等一系列操作。

例如,在音频处理中,我们可以使用MATLAB对音频信号进行去噪、降噪、特征提取等操作,以改善音频质量。

另外,在无线通信中,信号调制、解调和通道估计等操作也需要使用到MATLAB的信号处理工具箱。

二、控制系统设计与仿真控制系统设计是工程设计的重要组成部分,它涉及到自动化、机械、电子等多个领域。

MATLAB提供了专业的控制系统工具箱,可以进行控制系统建模、系统辨识、控制器设计等工作。

例如,在飞行器的姿态控制中,我们可以使用MATLAB进行系统模型的建立,并设计合适的控制器来实现飞行器的稳定飞行。

此外,MATLAB还支持对控制系统进行仿真,可以通过模拟系统动态响应来验证设计的效果。

三、电路与电子设计在电路与电子设计中,MATLAB可以辅助工程师进行电路分析、模拟和优化。

MATLAB提供了电路设计工具箱,包括电路拓扑分析、参数优化、电路模型生成等功能。

例如,在功率电子领域,我们可以使用MATLAB对电子变流器进行建模,并通过优化算法找到最佳的拓扑结构,以提高功率转换效率。

此外,MATLAB还支持混合信号电路设计和可编程逻辑器件(FPGA)设计等领域。

四、结构力学与有限元分析结构力学是工程设计的重要组成部分,它涉及到物体的力学性质和结构响应。

MATLAB提供了结构力学分析工具箱和有限元分析工具箱,可以进行静力学和动力学分析、结构模态分析、应力/应变分布等工作。

Matlab技术工程应用实例

Matlab技术工程应用实例

Matlab技术工程应用实例引言:在当今信息化社会,工程技术的发展与应用已经成为推动社会进步和经济发展的重要支撑。

计算机技术的迅速发展使得在工程技术应用中,大量的数据处理、模拟和分析都可以通过计算机软件进行。

Matlab作为一种重要的工程软件工具,被广泛应用于各个领域中。

本文将介绍一些Matlab在工程技术中的应用实例,包括信号处理、图像处理、控制系统等多个方面,以展示Matlab在实际工程问题中的重要作用。

一、信号处理应用实例:信号处理是工程技术中的一个重要方向,涉及音频、图像、视频等多个领域的数据处理。

Matlab提供了丰富的信号处理工具包,广泛应用于音频分析、滤波等任务中。

例如,在音频处理中,可以通过Matlab实现音频的混响效果,通过模拟不同的房间声音,使得音频更加丰富和逼真。

此外,Matlab还可以实现音频频谱分析,用于音频的特征提取和音乐指纹识别等任务。

二、图像处理应用实例:图像处理是工程技术中另一个重要方向,主要涉及图像的增强、分割、识别和压缩等任务。

Matlab提供了强大的图像处理工具包,用于图像的滤波、变换和编码等任务。

例如,在医学图像处理中,可以通过Matlab实现磨皮效果,并提取出肿瘤区域进行更精确的诊断。

此外,Matlab还可以实现图像的人脸识别,用于安防系统和人脸解锁等应用。

三、控制系统设计实例:控制系统设计是工程技术中的一个重要方向,主要涉及自动控制和系统优化等任务。

Matlab提供了丰富的控制系统工具包,用于控制系统的建模、仿真和优化等任务。

例如,在电力系统中,可以通过Matlab实现电压的自动调节和负载的平衡,提高系统的稳定性和可靠性。

此外,Matlab还可以实现机器人的路径规划和控制,用于自动化生产线和无人驾驶等应用。

四、数值计算实例:数值计算是工程技术中的一个重要方向,主要涉及方程求解、优化问题和数值模拟等任务。

Matlab提供了丰富的数值计算工具包,用于求解复杂的数学问题。

Matlab在工程设计与仿真中的应用案例

Matlab在工程设计与仿真中的应用案例

Matlab在工程设计与仿真中的应用案例近年来,Matlab(全称Matrix Laboratory)在工程设计与仿真中的应用越来越广泛。

Matlab是一款功能强大的计算软件,具有矩阵计算、数据处理和可视化等多种功能。

本文将通过几个实际案例,展示Matlab在工程设计与仿真中的应用。

一、电路设计与仿真电路设计是工程领域中重要的一环,而Matlab提供了强大的电路设计与仿真工具。

以滤波器设计为例,Matlab配备了丰富的滤波器设计函数,可以根据特定的滤波系数和频响要求,快速设计出满足需求的滤波器。

同时,Matlab还支持频域仿真,可以对信号进行傅里叶变换和滤波操作,以实现不同的信号处理需求。

二、机械系统建模与控制在机械系统建模与控制方面,Matlab也发挥了重要的作用。

例如,在机械结构设计中,Matlab可以通过有限元分析建立结构的数值模型,对结构的强度、刚度等进行分析与求解。

同时,Matlab还支持控制系统建模与仿真,可以通过控制系统的设计,提高机械系统的性能和稳定性。

三、通信系统设计与仿真通信系统设计与仿真是Matlab应用的另一个重要领域。

例如,在无线通信系统设计中,Matlab提供了丰富的信号处理工具,可以对传输信号进行调制、解调和通道编码等操作,实现数据的可靠传输。

此外,Matlab还支持多输入多输出系统的建模与仿真,可以分析和优化系统的传输性能。

四、图像处理与计算机视觉近年来,图像处理和计算机视觉成为热门的研究领域。

而Matlab提供了一系列的图像处理函数与工具箱,可以进行图像的滤波、分割、特征提取和目标识别等操作。

通过Matlab的强大功能,研究人员可以开展多样化的图像处理与计算机视觉应用,如人脸识别、车牌识别等。

五、仿真与优化算法Matlab凭借其强大的数值计算能力和优化算法,成为工程设计中的重要辅助工具。

例如,在电力系统中,Matlab可以应用潮流计算和稳定性分析等算法,发现潮流分布、电压质量等问题,优化电力系统的稳定性和效率。

《MATLAB工程应用》---晶闸管开环直流调速系统仿真实验

《MATLAB工程应用》---晶闸管开环直流调速系统仿真实验

《MATLAB工程应用》
晶闸管开环直流调速系统仿真
一、选题背景
本课程是在《电机学》《单片机》等课程上,独立设计的一门综合实验课程。

课程主要目的是培养学生分析问题,解决问题能力,提高学生自主学习,分工协作以及课程设计报告撰写水平。

二、方案论证(设计理念)
设计一个晶闸管直流调速系统仿真模型,通过改变触发器移相控制信号来调节晶闸管的触发角,而从获得可调的直流电压,以该直流输出为直流电机供电。

要求完成仿真模型图和仿真波形图,其中波形图包括直流电机的转速波形,电枢电流波形,转矩波形,改变触发角后的转速波形。

三、过程论述
直流电动机电枢由晶闸管整流电路经平波电抗器供电,通过改变触发器移相控制信号调节晶闸管的控制角,从而获得可调的直流电压,以实现直流电动机的调速。

移相控制信号,在实际调速时,给定信号是在一定范围内变化的,可通过仿真实践,确定给定信号允许的变化范围。

图1:构建的simulink仿真结构图
图2:参数设置
图3:波形
五、课程设计总结
仿真可得到闸管直流调速系统的输出波形。

电机转速波形,电枢电流波形,二者变化基本一致。

若将触发角改为30°,则转速波形发生明显改变,转速提高,这是因为直流电压增大的原因。

经过这段时间队MATLAB的学习,学会了对知识的汇总与运用,能够熟练使用相关软件,收获较大。

Matlab技术的实际应用案例解析

Matlab技术的实际应用案例解析

Matlab技术的实际应用案例解析随着计算机技术的发展,Matlab作为一种高级技术语言,被广泛应用于多个领域。

无论是在科研领域还是工程实践中,Matlab都扮演着重要的角色。

本文将通过几个实际应用案例,探讨Matlab技术在不同领域的应用,以期给读者提供一些启示和参考。

一、图像处理领域图像处理是Matlab的一项重要应用领域。

利用Matlab提供的强大的图像处理工具箱,可以实现各种功能,例如图像增强、滤波、分割和识别等。

以下将介绍一个实际应用案例。

案例一:肿瘤图像分割肿瘤图像的分割对于医学诊断非常关键。

在某医院的研究中,研究人员利用Matlab进行了肿瘤图像的分割工作。

首先,他们先对肿瘤图像进行预处理,包括降噪和增强等操作。

然后,利用Matlab提供的图像分割算法,将肿瘤与周围组织分离出来。

最后,通过对分割后的图像进行计算,可以得到肿瘤的大小、形状等信息,为医生提供诊断依据。

二、信号处理领域信号处理是Matlab的另一个重要应用领域。

通过利用Matlab提供的信号处理工具箱,可以实现信号的滤波、谱分析、峰值检测等功能。

以下将介绍一个实际应用案例。

案例二:语音信号增强在通信领域,语音信号是一种常见的信号类型。

在某通信公司的项目中,研发团队利用Matlab对语音信号进行增强。

首先,他们通过Matlab提供的滤波器设计算法,设计了一种高效的降噪滤波器。

然后,他们利用该滤波器对采集到的语音信号进行滤波处理,去除噪声成分。

最后,通过对处理后的语音信号进行主观听感和客观评价,证明了该算法的有效性。

三、控制系统领域Matlab在控制系统领域的应用也非常广泛。

通过Matlab提供的控制系统工具箱,可以进行控制系统的建模、仿真和优化等操作。

以下将介绍一个实际应用案例。

案例三:智能交通信号优化在城市交通系统中,智能交通信号优化是一个重要的研究方向。

在某城市的交通管理局的项目中,研究人员利用Matlab进行了智能交通信号优化的仿真研究。

Matlab中的工程实践与应用案例分析

Matlab中的工程实践与应用案例分析

Matlab中的工程实践与应用案例分析1. 引言Matlab作为一种强大的科学计算软件,广泛应用于各个领域的工程实践中。

本文将通过分析不同领域的实际案例,探讨Matlab在工程实践中的应用及其重要性。

2. 电力系统中的应用在电力系统中,Matlab被广泛用于电力负荷预测、电力系统稳定性分析和交流/直流输电线路参数计算等方面。

例如,在电力负荷预测中,通过采集历史电力负荷数据,利用Matlab的时间序列分析工具,可以预测未来电力负荷的趋势,提前做好电力调度和资源配置。

同时,Matlab还可以帮助电力系统工程师分析电力系统的稳定性,并提供优化的稳定控制方案。

3. 机械工程中的应用在机械工程中,Matlab被广泛用于动力学仿真、结构优化和机器人控制等领域。

例如,在动力学仿真中,通过Matlab的多体动力学仿真工具,可以模拟各种机械系统的运动和力学行为,包括刚体运动、弹性变形和液压驱动等。

另外,Matlab还可以帮助机械工程师进行结构的优化设计,通过调整结构参数和材料选择,使得设计的机械结构更加轻量化和耐用。

此外,Matlab还可以应用于机器人的控制算法设计和路径规划,使得机器人能够完成复杂的工作任务。

4. 通信工程中的应用在通信工程中,Matlab被广泛应用于通信系统的设计和信号处理。

例如,在无线通信系统设计中,Matlab可以帮助工程师进行通信链路的建模和性能分析,预测系统的传输容量和覆盖范围。

同时,Matlab还提供了丰富的通信信号处理工具箱,可以帮助工程师进行信号解调、频谱分析和误码率估计等。

此外,Matlab还支持通信算法的开发和验证,如调制解调、信道编码与解码等。

5. 医疗工程中的应用在医疗工程中,Matlab被广泛应用于医学图像处理、生物医学信号处理和医疗设备仿真等领域。

例如,在医学图像处理中,Matlab提供了强大的图像处理工具箱,可以进行CT图像重建、核磁共振图像分割和脑电图分析等。

此外,Matlab还可以帮助医学领域的研究人员处理和分析生物医学信号,如心电图、脉搏波和脑电波等。

Matlab在汽车工程中的应用示例

Matlab在汽车工程中的应用示例

Matlab在汽车工程中的应用示例引言:汽车工程是一个综合性的学科,涉及到多个领域的知识和技术。

在汽车的设计、测试、控制和优化等方面,Matlab都有着广泛的应用。

本文将针对几个具体的应用领域,介绍Matlab在汽车工程中的应用示例。

一、汽车动力学仿真汽车动力学仿真是汽车工程中的重要组成部分。

通过建立系统的动力学模型,可以模拟汽车在不同条件下的运行行为,为汽车设计与控制提供可靠的依据。

Matlab具备强大的数值计算和仿真功能,极大地方便了汽车动力学仿真的实施。

1. 制动系统仿真:Matlab可以用来建立汽车的制动系统仿真模型,包括制动器、制动液压系统和车轮等部件。

通过对制动力、制动距离、制动时间等参数的计算,可以评估和改进汽车的制动性能。

此外,还可以通过调整摩擦系数、制动液流动压力等参数,优化制动系统的设计。

2. 悬挂系统仿真:汽车的悬挂系统对行驶的稳定性和舒适性有着重要影响。

利用Matlab,可以建立汽车悬挂系统仿真模型,预测悬挂系统的动态响应、滤波效果等性能指标,并进行悬挂系统的参数优化。

此外,还可以通过调整悬挂系统的刚度、阻尼等参数,来改善汽车的操控性和乘坐舒适性。

二、车辆动力学测试数据处理在汽车工程中,进行车辆动力学测试是评估汽车性能的重要手段之一。

通过采集汽车在实际情况下的运行数据,可以进行各种性能指标的分析和评估。

而Matlab的数据处理和分析功能,为车辆动力学测试提供了强大的支持。

1. 加速性能分析:通过采集汽车的实际加速数据,可以分析汽车的加速性能,如加速时间、加速度等指标。

在Matlab中,可以利用数据处理和统计分析的函数,快速计算出汽车的平均加速时间、最大加速度等参数,并与其他车型进行对比分析。

2. 操控性能评估:通过分析汽车在连续驱动和急转弯等情况下的动力学数据,可以评估汽车的操控性能。

利用Matlab的信号处理和频谱分析工具,可以提取出汽车的横向加速度、侧向加速度等指标,并进行综合评估。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
kf mg
v mg k
第三章
MATLAB优化算法案例分析与应用
•3.5 冰雹的下落速度
function y3_2
t0=0; %初始值
tf=6; %终止值
a=9.8; %初始加速度
options =odeset('RelTol',1e-4,'AbsTol',[1e-4]);
%求解精度设置
10.3
由物理学可知,建立速度满足的微分方程,冰雹受到地球引力和空气阻 力的影响,其加速度应该为:
mg kv ma
作Laplace变换 msV (s) kV (s) mg 1 s
做Laplace反变换,有:
v(t)
gm
(1
kt
e m)
k
第三章
•3.5 冰雹的下落速度
MATLAB优化算法案例分析与应用
设质点系关于此点的转动惯量为
n
J (x xi )2 ( y yi )2 mi
i1
n
n
n
n
n
x2 mi y2 mi 2x ximi 2 y yimi (xi2 yi2 )mi
i1
i1
i1
i1
i1
由上式满足最小值条件时,
J
x
n
n
2x mi 2 ximi
i1
i1
0
J
y
n
n
2 y mi 2 ximi
i1
i1
0
n
n
ximi
yimi
x
i1 n
,y
i1 n
mi
mi
i1
i1
第三章
MATLAB优化算法案例分析与应用
•3.3 储油罐的油量计算
一平放的椭圆柱体形状的油罐,长度为 L,椭圆的长半轴为 a
,短半轴为b ,油的密度为 ,油罐中油的高度为 h,油罐的
横断面如图所示。
横断面的方程表达式
x2 y2 1
a2 b2
矩形的面积为
2a
1
y2 b2
dy
油罐端面
油罐中油横断面中高度为h 时的面积为
bh
y2
2a 1 dy
b
b2
第三章
MATLAB优化算法案例分析与应用
•3.3 储油罐的油量计算
当油罐中油的高度为h 时油量为: bh 2aL 1 y2 dy ,对其进行积分:
end
9.9
9.8
0
1
2
3
4
5
6
t
速度曲线

2
光线反射示意图
第三章
MATLAB优化算法案例分析与应用
•3.1 光的反射定理论证
则光线从L101 到 L0’2 ,所需时间为:
H
H
T L10‘ L0’2 CC
cos1
C
c os 2
C
H C
c
1
os1
1
c os 2
又1点与2点之间的距离为定值 L ,则可得到:
L H tan1 tan2
bb
b
4
第三章
•3.5 冰雹的下落速度
MATLAB优化算法案例分析与应用
当冰雹由高空落下时,它受到地球引力和空气阻力的作用,阻力的大 小与冰雹的形状和速度有关,一般可以对阻力作两种假设: 阻力大小与下落的速度成正比; 阻力大小与速度的平方成正比;
已知初速度 v0 0 、冰雹质量m 、重力加速度g 、正比例系数 k>0 。
(2)阻力大小与速度的平方成正比,有
已知初速度 v0 0 、冰雹质量m 、重力加速度g 、正比例系数 k>0 。
由物理学可知,建立速度满足的微分方程,冰雹受到地球引力和空气阻 力的影响,其加速度应该为:
mg kv2 ma
冰雹的下落时,在一开始速度比较小时(阻力小于重力),冰雹的速度 总是增加的。当速度达到一定时(阻力等于重力),速度不再增加,显然 这个时候就是冰雹速度的最大值。所以,若要冰雹的速度达到最大,有:
2K
tan1
2cos2 1
1 K
tan1 2
1 2}
因函数时间 T 有极小值,令T ' 0
从而有:
tan 2
tan1
K 2
1 2
第三章
MATLAB优化算法案例分析与应用
•3.2 质点系转动惯量求解
n 已知在平面上的 个质点 P1 x1,y1 ,P2 x2,y2 , Pn xn,yn 其质量分别为m1,m2 mn ,确定一个点 Px, y ,使得质点系关于此点的转动惯量为最小。
[T,V]=ode45(@diffv,[t0 tf],a,options); % /用 10.2
低阶法求微分方程二的数值解/
plot(T,V) %画图
v
10.1
end 10
function dv = diffv(t,v) %/*第二个微分方程*/ m=1.1; k=0.1; g=9.8; % g值 dv=zeros(1,1); dv(1)=(m*g-k*v(1)*v(1))/m; %加速度
第三章
MATLAB优化算法案例分析与应用
第3章 MATLAB工程应用实例
第三章
MATLAB优化算法案例分析与应用
•3.1 光的反射定理论证
光的反射定理最早由费马
提出,费马原理:光总是沿用 时最短的光程传播。例如光线 的 入 射 、 反 射 过 程 可 由 图 3-1 直观的表示出来,2中光线从1 入射,发射到2点。试证明光 的反射定律:入射角等于反射 角。
b
b2
bh
2La
b
1
y2 b2
令yb sin t
dy t
22
arcsin(1 h b
)
2Lab
c ot2
tdt
4
arcsin(1 h ) b
4
2Lab
2
sin
2t
)
a r c sin(1
h b
)
4
油罐端面
Lab[arcsin(1 h ) ( h 1) 1 ( h 1)2 ]
K L H
tan1 tan 2 K
由三角代换变形得到:
cos2 1 K tan1 2 1 2
第三章
MATLAB优化算法案例分析与应用
•3.1 光的反射定理论证
得到:
T
H C
c
1
os1
1
c os 2
H C
c
1
os1
1 K
tan1 2
12
对上式求一阶导数得到:
T '
H C
{ sin1 cos2 1
光线反射示意图
第三章
MATLAB优化算法案例分析与应用
•3.1 光的反射定理论证
针对图所示光线反射路径图
,假设 X 轴设为实物体表面,
且为理想状态,光线传播过程
中无阻碍,一束自然光线沿路
径 L101 照射到 X 轴,与法线Y
轴的夹角为 1;光线经实物体
表面 X 轴反射后,沿路径L 发 0’2
射,与法线Y轴的夹角为
相关文档
最新文档