matlab例题.docx

上传人:b****6 文档编号:16635007 上传时间:2023-07-15 格式:DOCX 页数:19 大小:269.64KB
下载 相关 举报
matlab例题.docx_第1页
第1页 / 共19页
matlab例题.docx_第2页
第2页 / 共19页
matlab例题.docx_第3页
第3页 / 共19页
matlab例题.docx_第4页
第4页 / 共19页
matlab例题.docx_第5页
第5页 / 共19页
matlab例题.docx_第6页
第6页 / 共19页
matlab例题.docx_第7页
第7页 / 共19页
matlab例题.docx_第8页
第8页 / 共19页
matlab例题.docx_第9页
第9页 / 共19页
matlab例题.docx_第10页
第10页 / 共19页
matlab例题.docx_第11页
第11页 / 共19页
matlab例题.docx_第12页
第12页 / 共19页
matlab例题.docx_第13页
第13页 / 共19页
matlab例题.docx_第14页
第14页 / 共19页
matlab例题.docx_第15页
第15页 / 共19页
matlab例题.docx_第16页
第16页 / 共19页
matlab例题.docx_第17页
第17页 / 共19页
matlab例题.docx_第18页
第18页 / 共19页
matlab例题.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

matlab例题.docx

《matlab例题.docx》由会员分享,可在线阅读,更多相关《matlab例题.docx(19页珍藏版)》请在冰点文库上搜索。

matlab例题.docx

matlab例题

【例一.1】绘制简单函数的曲线图。

x=-5:

.1:

5;y=x.^2;subplot(2,2,1);plot(x,y);%x-y曲线

subplot(2,2,2);plot(y,x);t=x;%y-x曲线

subplot(2,2,3);plot(t.*cos(t),t.*sin(t));%参数函数的曲线

subplot(2,2,4);plot3(t.*cos(t),t.*sin(t),t);

图3.5-2简单函数的曲线图绘制

【例一.2】在一张图上简单绘制多条曲线。

x1=linspace(0,4,50);y1=sin(x1*pi);

x2=linspace(2,5,30);y2=x2;

x3=linspace(1,7,80);y3=sqrt(x3);

plot(x1,y1,x2,y2,x3,y3);

图3.5-3一张图上绘制多条曲线

【例一.3】二维图形对象的操作:

填充y=sin(πx)+4和y=x2之间的区域。

x=linspace(-3,3,100);

y1=sin(x*pi)+4;y2=x.^2;

plot(x,[y1;y2]);

xlabel('x');ylabel('y');

text(-2.6,7,'\leftarrowx^2','fontsize',16);

text(-1.2,5.1,'sin(x\pi)+4\rightarrow',...

'fontname','courier',...%设置text字体属性

'fontangle','italic',...%设置text字体倾斜属性

'fontsize',14);%设置text字体大小属性

legend('sin(x\pi)+4','x^2',0);%添加图例

holdon;%设置绘图方式为保持

xf=linspace(-2,2,100);

y1f=sin(xf*pi)+4;y2f=xf.^2;

%从最左边开始,按逆时针方向在y1f和y2f上形成多边形并填充

fill([xffliplr(xf)],[y1f,fliplr(y2f)],'r');

text(-1.2,2,'areabetweentwofunctions');

axis([-330inf]);%设置坐标范围

%设置坐标刻度,并在刻度标签上标注交点坐标(cx1,cy)和(cx2,cy)

set(gca,'YTick',0:

9);

set(gca,'YTickLabel','0|1|2|3|cy|5|6|7|8|9');

set(gca,'XTick',-3:

3);

set(gca,'XTickLabel',{'-3''cx1''-2''0''1''cx2''3'})

图3.5-4二维图形对象的操作示例

【例一.4】plotyy函数的使用:

已知

,分别绘制A=200,α=0.05,β=1,f=0.2和A=0.8,α=0.5,β=2,f=2时y的图形,并用Tex字符串在图上标注出这些参数值。

t=0:

0.01:

20;

A1=200;alf1=0.05;bt1=1;f1=0.2;

A2=0.8;alf2=0.5;bt2=2;f2=2;

y1=A1*exp(-alf1*t).*sin(2*pi*f1*t+bt1);

y2=A2*exp(-alf2*t).*sin(2*pi*f2*t+bt2);

%用plot方式绘制双y轴曲线,并返回坐标盒和绘制曲线的句柄

[AX,H1,H2]=plotyy(t,y1,t,y2,'plot');

%设置每个坐标盒的横轴刻度

set(AX

(1),'xtick',0:

2:

20);set(AX

(2),'xtick',0:

2:

20);

%获取每个坐标盒的Ylabel句柄以设置其字符串属性

set(get(AX

(1),'Ylabel'),'String','LeftY-axis');

set(get(AX

(2),'Ylabel'),'String','RightY-axis');

xlabel('0to20\musec.');

title('anexamplefor''plotyy''');

%分别设置两条曲线的线型

set(H1,'LineStyle','--');set(H2,'LineStyle',':

');

%生成字符串单元数组,用于在图形窗上显示多行文本

sT

(1)={['{\itAe^{\fontsize{10}{-\alphat}}}',...

'sin(2{\it\pift}+{\it\beta})']};

sT

(2)={['Leftline:

','{\itA}=',num2str(A1),';'...

'{\it\alpha}=',num2str(alf1),';'...

'{\itf}=',num2str(f1),';'...

'{\it\beta}=',num2str(bt1)]};

sT(3)={['Rightline:

','{\itA}=',num2str(A2),';'...

'{\it\alpha}=',num2str(alf2),';'...

'{\itf}=',num2str(f2),';'...

'{\it\beta}=',num2str(bt2)]};

%用鼠标指定文本的显示位置,同时设置文本的显示属性

gtext(sT,'fontsize',12,...

'HorizontalAlignment','right',...

'edgecolor','red',...

'backgroundcolor',[0.7,0.7,0.7])';

图3.5-5用plotyy同时绘制具有不同纵坐标范围的两条曲线

【例一.5】绘制条形图。

Y=[521

873

986

432]+10;

subplot(2,3,1);bar(Y);gridon;

set(gca,'YLim',[1020]);

subplot(2,3,2);bar(Y,'stack');

gridon;set(gca,'YLim',[1060],'Layer','top')

subplot(2,3,4);bar3(Y,'group');

subplot(2,3,5);bar3(Y,'stack');

set(gca,'ZLim',[1060]);

subplot(2,3,6);bar3(Y);

图3.5-6各种各样的条形图

【例一.6】已知90-94年的销售额和成本,按年绘出利润面积图和成本饼图。

year=90:

94;sales=[51.682.490.859.147.0];%销售额

cost=[21.339.559.349.428.3];%成本

subplot(1,2,1);%在第一个子图中绘销售面积图

subplot(1,2,1);area(year,sales,'FaceColor',[.5.9.6],...

'EdgeColor','b','LineWidth',2);

%第一个子图中叠绘成本面积图

holdon;area(year,costs,'FaceColor',[.9.85.7],...

'EdgeColor','y','LineWidth',2);holdoff;

set(gca,'XTick',[90:

94]);set(gca,'Layer','top');gridon;

ylabel('Sales-Profit=Cost','FontSize',14)

gtext('\leftarrowSales');gtext('Cost');gtext('profit');

%在第二个子图中绘年成本饼图,其中最大的饼块分离显示。

subplot(1,2,2);[c,offset]=max(cost);

explode=zeros(size(cost));explode(offset)=1;

h=pie(cost,explode);colormapsummer;

%为饼图中的每个文本对象添加年标记

txtObjs=findobj(h,'Type','text');%找到所有文本对象的句柄

oldStr=get(txtObjs,{'String'});%记录所有文本对象的值

fori=1:

length(year);%为每个文本对象生成新值

names{i}=['Y',num2str(year(i)),':

'];end;

newStr=strcat(names,oldStr);

set(txtObjs,{'String'},newStr);%重新设置文本对象的值

图3.5-7面积图和饼图

【例一.7】已知三维弹道的位置函数和初速度,试绘制t从0到1的弹道曲线。

a=-32;vx=2;vy=3;vz=10;t=0:

.1:

1;

x=vx*t;y=vy*t;z=vz*t+1/2*a*t.^2;

%计算不同方向上的数值梯度

u=gradient(x);v=gradient(y);w=gradient(z);

subplot(121);quiver3(x,y,z,u,v,w);%绘制位置点上的速度矢量

view([10,-80,10]);axissquare;

subplot(122);stem3(x,y,z,'b');%绘制运动轨迹

holdon;comet3(x,y,z);holdoff;%以动画方式绘制运动轨迹

图3.5-8特殊三维曲线的绘制

【例一.8】绘制三维数据的等值线图。

[X,Y,Z]=peaks(20);%获取三维数据

subplot(231);contour(Z,10);%绘制10条等高线

subplot(232);contour(X,Y,Z,5);%绘制5条等高线

%在等高线图上绘制速度羽线(用来反映数据的梯度信息)

holdon;

[U,V]=gradient(Z,.2);

quiver(X,Y,U,V);

holdoff;

%在等高线图上添加高度信息文本

subplot(233);[Ch]=contour(Z,5);p=clabel(C,h);

htxt=findobj(p,'type','text');

set(htxt,'fontsize',7);

st=char(get(htxt,{'string'}));

s=cellstr(st(:

[1:

4]));

set(htxt,{'string'},s);

%绘制3维等高线

subplot(234);contour3(Z,10);

%绘制2维等高线,并用颜色填充图形(颜色反映了数据的高度信息)

subplot(235);[C,h]=contourf(Z,10);

caxis([-2020])

图3.5-9绘制不同的等值线图

【例一.9】制作基于图象帧的动画。

Z=peaks;surf(Z);axistight;

set(gca,'nextplot','replacechildren');

forj=1:

20%捕获20帧图象存为F

surf(sin(2*pi*j/20)*Z);

F(:

j)=getframe;

end

movie(F,10)%将记录的20帧图象回放10次

图3.5-10用图象帧制作动画效果

【例一.10】Lorenz奇异吸引子的动态演示。

该混沌现象由下述非线性差分方程描述,其运动轨迹围绕空间两个吸引子,但是没有稳定状态。

本例采用固定步长的Euler数值方法图示该现象,例中假设y的初值为[35-10-7]。

A=[-8/300;0-1010;028-1];y=[35-10-7]';

delt_t=0.01;%设定计算步长

p=plot3(y

(1),y

(2),y(3),'.',...

'EraseMode','none','MarkerSize',2);

axis([050-2525-2525]);holdon;

fori=1:

4000%设定计算次数

A(1,3)=y

(2);A(3,1)=-y

(2);dydt=A*y;

y=y+dydt*delt_t;%用y+dy/dt*∆t近似下一时刻的y

set(p,'XData',y

(1),'YData',y

(2),'ZData',y(3))

drawnow%强迫刷新

end

图3.5-11Lorenz奇异吸引子的动态显示

【例一.11】渲染sinc函数表示的空间曲面。

[X,Y]=meshgrid(-8:

.5:

8);R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;

surf(X,Y,Z,'FaceColor','interp',%设定曲面颜色的使用方式

'EdgeColor','none',%设定不显示网格线的颜色

'FaceLighting','phong');%设定曲面光照模型

axistight;

%设定坐标刻度比例(z轴单位线段的长度是x、y轴单位线段长度的5倍)

daspect([551]);

camlightleft%设定光源在左侧

view(-50,30);%设定视角

图3.5-12空间曲面的渲染

【例一.12】非规则数据的曲面表现和二维数据插值:

假设数据来自二维sinc函数的非均匀采样。

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),30);

ylin=linspace(min(y),max(y),30);

[X,Y]=meshgrid(xlin,ylin);

%通过插值方法获得均匀平面网格上的Z数据

Z=griddata(x,y,z,X,Y,'cubic');

mesh(X,Y,Z);axistight;

%为查看插值效果,在图形上叠加原始数据样点

holdon;plot3(x,y,z,'.','MarkerSize',15)

图3.5-13非规则数据的曲面表现和二维数据插值

【例一.13】NaN在绘图中的应用。

(注:

绘图函数会忽略数据中的非数NaN。

x=-1:

.01:

1;[X,Y]=meshgrid(x,x);

x(length(x)/3:

length(x)/3*2)=nan;

subplot(121);plot(x);

Z=-X.^2-Y.^2;Z(Z>-0.5)=nan;

subplot(122);mesh(X,Y,Z);axistight;

图3.5-14NaN在绘图中的应用

【例一.14】函数

表示的空间曲面。

[x,y]=meshgrid([-2:

.2:

2]);Z=x.*exp(-x.^2-y.^2);

subplot(121);

%使用默认色图,指定颜色参数为Z的梯度(即颜色反映了该位置的梯度)

surf(x,y,Z,gradient(Z));

colorbar;%显示高度-颜色指示条(作用类似于图例)

%用随机颜色分量生成颜色数组C(真彩色)

c=rand(size(Z,1)*3,size(Z,2))*.3+.7;

C(:

:

1)=c(1:

size(Z,1),:

);

C(:

:

2)=c(size(Z,1)+1:

size(Z,1)*2,:

);

C(:

:

3)=c(size(Z,1)*2+1:

end,:

);subplot(122);

surf(x,y,Z,C,...%用真彩色显示曲面

'FaceColor','interp','FaceLighting','phong')

图3.5-15颜色在空间曲面表现中的应用

【例一.15】动态演示风的三维流线。

loadwind;%载入MATLAB自带的演示数据

[sxsysz]=meshgrid(100,20:

2:

50,5);%生成三维网格

verts=stream3(x,y,z,u,v,w,sx,sy,sz);%计算三维流线

sl=streamline(verts);%绘制三维流线

view(-10.5,18);%设定视角

daspect([220.125]);%设定坐标轴刻度的比例关系

axistight;%设定坐标盒紧包围

boxon;%显示坐标盒线框

%流线顶点插值

iverts=interpstreamspeed(x,y,z,u,v,w,verts,0.01);

streamparticles(iverts,15,...%显示15个运动的颗粒

'Animate',10,...%动画播放10次

'ParticleAlignment','on')%颗粒从起始位置开始运动

图3.5-16三维流线的动态图形表现

【例一.16】绘制ρ=1+cos(t)的极坐标图。

symst;

ezpolar(1+cos(t))

图3.5-17ρ=1+cos(t)表示的极坐标图

【例一.17】a)在同一个坐标盒内分别绘制a=1,b=2和a=2,b=1时隐函数

的图形;b)单独绘制参数方程

表示的图形。

%ezplot支持字符串参数和符号表达式参数;默认参数方程的自变量为t

symsxyab;

a=1;b=2;subplot(121);

ezplot(x^2./a^2+y^2./b^2-1,[-2.12.1])

holdon;a=2;b=1;

ezplot(x^2./a^2+y^2./b^2-1)

subplot(122);ezplot('5*t','t^2')

图3.5-18绘制隐函数和参数方程的图形

【例一.18】绘制函数

表示的空间曲面。

symsxy;

f=exp(-x^2-(y+1)^2)-exp(-(x+1)^2-y^2);

%把xy平面上的正方形区间[-3,3]划分为49个网格,然后作图

ezsurf(f,[-3,3],49);

view(0,75);%设置视角

shadinginterp;%设置阴影方式为插值

lightangle(-45,30);%设置光源方向

set(gcf,'Renderer','zbuffer');%设置计算机展现图形的方式

set(findobj(gca,'type','surface'),...

'FaceLighting','phong',...%设置光照模型为phong模型

'AmbientStrength',.3,...%设置环境光源光照强度

'DiffuseStrength',.8,...%设置漫反射系数

'SpecularStrength',.9,...%设置镜面反射系数

'SpecularExponent',25)%设置镜面反射区域的大小

图3.5-19符号函数可视化图形的渲染

【例一.19】在绘制好的三维sinc曲面上叠绘另一个曲面z=(x2+y2)/50。

ezsurf('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)',30);

holdon;ezsurf('(x^2+y^2)/50',30);

图3.5-20在同一坐标盒内绘制多个符号函数的图形

【例一.20】根屏幕的属性操作。

set(0,'units')%列出所有可用的度量单位

get(0,'units')%获取当前使用的度量单位

get(0,'ScreenSize')%返回屏幕的大小

set(0,'units','normal')%设置度量单位为归一化单位

get(0,'ScreenSize')%再次返回屏幕的大小

[inches|centimeters|normalized|points|pixels|characters]

ans=pixels

ans=111024768

ans=0011

【例一.21】以绘制正弦函数图形为例,演示设置图形对象默认属性的效果。

%在根屏幕上设置图形窗的默认颜色

set(0,'DefaultFigureColor',[111]);

t=0:

pi/20:

2*pi;s=sin(t);

%在指定位置创建图形窗,并在该层上指定默认的坐标盒颜色属性为白色

figh=figure('Position',[30100600350],...

'DefaultAxesColor','w');

axh1=subplot(1,2,1);gridon;

%在第一个坐标盒上指定默认的线型属性为点划线

set(axh1,'DefaultLineLineStyle','-.');

line('XData',t,'YData',s)%用指定的数据属性创建线对象

text('Position',[3.4],'String','Sine')

axh2=subplot(1,2,2);gridon;

%在第二个坐标盒上指定文本对象默认的旋转属性为90度

set(axh2,'DefaultTextRotation',90);

line('XData',t,'YData',s);

%在指定位置,用指定的字符串创建文本对象

text('Position',[3.4],'String','Sine')

%指定当前图形窗的鼠标指针属性为大十字

set(gcf,'Pointer','fullcross')

图3.5-23设置图形对象的默认属性

【例一.22】自定义正弦波鼠标指针

提示:

鼠标形状用16×16的矩阵表示,其元素值代表颜色:

1(黑色);2(白色);Nan(透明色)。

g=linspace(0,pi*2,16);c(1:

16,1:

16)=nan;

forn=1:

16;r=ceil(7*sin(g(n))+8);c([r,r+1],n)=1;end

%指定当前图形窗的鼠标指针属性为自定义,并指定指针形状数据来自c

set(gcf,'Pointer','custom','PointerShapeCData',c)

【例一.23】分别生成五面体线框图和面图。

vertex=[000;020;220;200;111];%定义顶点坐标

connect1=[125;235;345;415];%定义顶点间的连线

connect2=[1234];

pn=[1234152354];%定义点间划线顺序

x=vertex(pn,1);y=vertex(pn,2);z=vertex(pn,3);

subplot(121);plot3(x,y,z);%绘五面体线框图

subplot(122);

%用指定的顶点、连线、面颜色和面的边界颜色等属性绘五面体面图

patch('Vertices',vertex,'Faces',connect1,...

'FaceColor','b','EdgeColor','k');

patch('Vertices',vertex,'Faces',connect2,...

'FaceColor','r','EdgeColor','k');vi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2