Matlab习题与答案2资料.docx

上传人:b****5 文档编号:28053714 上传时间:2023-07-07 格式:DOCX 页数:15 大小:298.06KB
下载 相关 举报
Matlab习题与答案2资料.docx_第1页
第1页 / 共15页
Matlab习题与答案2资料.docx_第2页
第2页 / 共15页
Matlab习题与答案2资料.docx_第3页
第3页 / 共15页
Matlab习题与答案2资料.docx_第4页
第4页 / 共15页
Matlab习题与答案2资料.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Matlab习题与答案2资料.docx

《Matlab习题与答案2资料.docx》由会员分享,可在线阅读,更多相关《Matlab习题与答案2资料.docx(15页珍藏版)》请在冰豆网上搜索。

Matlab习题与答案2资料.docx

Matlab习题与答案2资料

实验二二维/三维数据的可视化

 

一、实验目的

熟悉掌握简单的图形绘制函数;掌握MATLAB常用的二维、三维图形及其他图形绘制函数的使用方法;熟悉图形句柄的使用。

二、实验环境

硬件环境:

计算机一台

软件环境:

Matlab6.0

三、实验内容

作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。

由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。

1、二维绘图

(1)plot函数

函数格式:

plot(x,y)其中x和y为坐标向量

函数功能:

以向量x、y为轴,绘制曲线。

例1在区间0≤X≤2内,绘制正弦曲线Y=SIN(X),其程序为:

x=0:

pi/100:

2*pi;

y=sin(x);

plot(x,y)

例2同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:

x=0:

pi/100:

2*pi;

y1=sin(x);

y2=cos(x);

plot(x,y1,x,y2)

plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。

例3用不同线型和颜色重新绘制Y1=SIN(X)和Y2=COS(X),其程序为:

x=0:

pi/100:

2*pi;

y1=sin(x);

y2=cos(x);

plot(x,y1,'go',x,y2,'b-.')

其中参数'go'和'b-.'表示图形的颜色和线型。

g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。

在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。

title(‘加图形标题');

xlabel('加X轴标记');

ylabel('加Y轴标记');

text(X,Y,'添加文本');

例4在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为:

x=linspace(0,2*pi,60);生成含有60个数据元素的向量X

y=sin(x);

plot(x,y);

axis([02*pi-22]);设定坐标轴范围

2、subplot函数

(1)subplot(m,n,p)

该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。

例5在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:

x=linspace(0,2*pi,60);

y=sin(x);

z=cos(x);

t=sin(x)./(cos(x)+eps);eps为系统内部常数

ct=cos(x)./(sin(x)+eps);

subplot(2,2,1);分成2×2区域且指定1号为活动区

plot(x,y);

title('sin(x)');

axis([02*pi-11]);

subplot(2,2,2);

plot(x,z);

title('cos(x)');

axis([02*pi-11]);

subplot(2,2,3);

plot(x,t);

title('tangent(x)');

axis([02*pi-4040]);

subplot(2,2,4);

plot(x,ct);

title('cotangent(x)');

axis([02*pi-4040]);

(2)多图形窗口

需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。

每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。

句柄显示在图形窗口的标题栏中,即图形窗口标题。

用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。

(3)hold命令

若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。

发出命令holdon后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。

阅读如下程序:

x=linspace(0,2*pi,60);

y=sin(x);

z=cos(x);

plot(x,y,'b');绘制正弦曲线

holdon;设置图形保持状态

plot(x,z,'g');保持正弦曲线同时绘制余弦曲线

axis([02*pi-11]);

legend('cos','sin');

holdoff关闭图形保持

3、函数f(x)曲线

fplot函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。

fplot函数格式:

fplot(fname,lims,tol)

其中fname为函数名,以字符串形式出现,lims为变量取值范围,tol为相对允许误差,其其系统默认值为2e-3。

例:

fplot(‘sin(x)’,[02*pi],’-+’)

fplot(‘[sin(x),cos(x)]’,[02*pi],1e-3,’·’)同时绘制正弦、余弦曲线

4、特殊坐标图形

1)对数坐标图形

(1)loglog(x,y)双对数坐标

例6绘制y=|1000sin(4x)|+1的双对数坐标图。

程序为:

x=[0:

0.1:

2*pi];

y=abs(1000*sin(4*x))+1;

loglog(x,y);双对数坐标绘图命令

(2)单对数坐标

以X轴为对数重新绘制上述曲线,程序为:

x=[0:

0.01:

2*pi]

y=abs(1000*sin(4*x))+1

semilogx(x,y);单对数X轴绘图命令

同样,可以以Y轴为对数重新绘制上述曲线,程序为:

x=[0:

0.01:

2*pi]

y=abs(1000*sin(4*x))+1

semilogy(x,y);单对数Y轴绘图命令

(3)极坐标图

函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径

例7绘制sin(2*θ)*cos(2*θ)的极坐标图,程序为:

theta=[0:

0.01:

2*pi];

rho=sin(2*theta).*cos(2*theta);

polar(theta,rho);绘制极坐标图命令

title('polarplot');

5、其它图形函数

除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统\matlab\toolbox\matlab目录下。

(1)、阶梯图形

函数stairs(x,y)可以绘制阶梯图形,如下列程序段:

x=[-2.5:

0.25:

2.5];

y=exp(-x.*x);

stairs(x,y);绘制阶梯图形命令

title('stairsplot');

(2)、条形图形

函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形

x=[-2.5:

0.25:

2.5];

y=exp(-x.*x);

bar(x,y);绘制条形图命令

(3)、填充图形

fill(x,y,’c’)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。

字符’c’规定填充颜色,其取值前已叙述。

下述程序段绘制一正方形并以黄色填充:

x=[01100];正方形顶点坐标向量

y=[00110];

fill(x,y,'y');绘制并以黄色填充正方形图

再如:

x=[0:

0.025:

2*pi];

y=sin(3*x);

fill(x,y,[0.50.30.4]);颜色向量

Matlab系统可用向量表示颜色,通常称其为颜色向量。

基本颜色向量用[rgb]表示,即RGB颜色组合;以RGB为基本色,通过r,g,b在0~1范围内的不同取值可以组合出各种颜色。

6、三维绘图

1、plot3函数

最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。

函数格式:

plot3(x1,y1,z1,c1,x2,y2,z2,c2,…)

其中x1,y1,z1…表示三维坐标向量,c1,c2…表示线形或颜色。

函数功能:

以向量x,y,z为坐标,绘制三维曲线。

例8绘制三维螺旋曲线,其程序为:

t=0:

pi/50:

10*pi;

y1=sin(t),y2=cos(t);

plot3(y1,y2,t);

title('helix'),text(0,0,0,'origin');

xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t');

grid;

2、mesh函数

mesh函数用于绘制三维网格图。

在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。

三维曲面的网格图最突出的优点是:

它较好地解决了实验数据在三维空间的可视化问题。

函数格式:

mesh(x,y,z,c)

其中x,y控制X和Y轴坐标,矩阵z是由(x,y)求得Z轴坐标,(x,y,z)组成了三维空间的网格点;c用于控制网格点颜色。

例9下列程序绘制三维网格曲面图

x=[0:

0.15:

2*pi];

y=[0:

0.15:

2*pi];

z=sin(y')*cos(x);矩阵相乘

mesh(x,y,z);

3、surf函数

surf用于绘制三维曲面图,各线条之间的补面用颜色填充。

surf函数和mesh函数的调用格式一致。

函数格式:

surf(x,y,z)

其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面上Z轴坐标。

例10下列程序绘制三维曲面图形

x=[0:

0.15:

2*pi];

y=[0:

0.15:

2*pi];

z=sin(y')*cos(x);矩阵相乘

surf(x,y,z);

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');

title('3-Dsurf');

4、视点

视点位置可由方位角和仰角表示。

方位角又称旋转角为视点位置在XY平面上的投影与X轴形成的角度,正值表示逆时针,负值表示顺时针。

仰角又称视角为XY平面的上仰或下俯角,正值表示视点在XY平面上方,负值表示视点在XY平面下方。

从不同视点绘制三维图形的函数为view。

view(az,el)中的az为方位角,el为仰角。

通过系统提供的多峰函数peaks的绘制例子,可进一步说明视点对图形的影响,以及view(az,el)函数的使用。

例11不同视角图形

p=peaks;系统提供的多峰函数

subplot(2,2,1);

mesh(peaks,p);

view(-37.5,30);指定子图1的视点

title('azimuth=-37.5,elevation=30')

subplot(2,2,2);

mesh(peaks,p);

view(-17,60);指定子图2的视点

title('azimuth=-17,elevation=60')

subplot(2,2,3);

mesh(peaks,p);

view(-90,0);指定子图3的视点

title('azimuth=-90,elevation=0')

subplot(2,2,4);

mesh(peaks,p);

view(-7,-10);指定子图4的视点

title('azimuth=-7,elevation=-10')

7、图形句柄

在Matlab系统中,绘图命令产生的每一个部分称为图形对象,系统在创建每一个对象时,都为该对象分配唯一的一个值,称其为句柄,因此句柄就是图形对象标识符。

对象、句柄以及图形对象等概念其实质是统一的,系统将每一个对象按树型层次结构组织起来,这些对象包括根对象,通常为计算机屏幕、图形窗口、坐标系统、线条、曲面、文本串、用户界面控制等。

根对象可包含一个或多个图形窗口对象,而一个图形窗口对象又可包含一组或多组坐标系子对象,线条、文本等其它对象都是坐标系的子对象。

所有创建对象的函数当父对象不存在时,都会自动创建它。

计算机屏幕作为根对象自动建立,其句柄值为0。

而Hf_f=figure命令则建立图形窗口对象,并返回它的句柄值给变量Hf_f。

图形窗口的句柄为一整数,并显示在该窗口的标题栏,其它图形对象的句柄为浮点数,Matlab提供了一系列与句柄操作有关的函数,如gcf、gca等。

为便于识别,用大写字母开头的变量表示句柄,如Hf_f等。

所有图形对象都具有控制对象显示的属性。

这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标系对象的刻度等。

用户可以获取、设置对象属性,以达到控制对象的目的。

当创建一个对象时,系统用一组默认属性值定制对象,用户梢酝üget命令获取这些属性值,同时也可通过set命令重新设置对象属性。

set命令格式为:

set(H,’name’,value,…)将图形对象H的name属性设置为value

其中H为句柄,name为属性名,value为name的属性值。

用set命令可以方便地设置图形对象属性,如下列程序段就是通过属性来定制图形。

x=[0:

0.1:

4*pi];

H=plot(x,sin(x));返回正弦曲线句柄H

set(H,'LineStyle','*','LineWidth',0.1);设置正弦曲线线型与线宽

其中'LineStyle'为线型属性,'LineWidth'为线宽属性。

利用get(H)命令可以返回当前句柄H对象的属性。

键入命令:

get(H)系统返回当前图形对象的有关属性:

象H=get(0,’CurrentFigure’)则返回根对象的’CurrentFigure’的属性值,即当前图形窗口的句柄,相当于函数gcf。

get(gcf,’Children’)则返回当前坐标系对象的句柄;类似的操作用户可在使用Matlab的过程中不断积累。

句柄应用

利用句柄操作的有关函数,用户可以查找、访问图形对象,以达到定制对象属性,改变对象显示效果的目的。

x=-pi:

pi/20:

pi;

y=sin(x);z=cos(x);

plot(x,y,'r',x,z,'g');

Hl_lines=get(gca,'Children');获取正、余曲线句柄向量Hl_lines

fork=1:

size(Hl_lines)

ifget(Hl_lines(k),‘Color’)==[010][010]为绿颜色向量Hl_green=Hl_lines(k)返回绿色线条句柄

end

end

四、实验习题

1.在[02π]范围内绘制二维曲线图y=sin(x)*cos(5x)。

解>>x=[0:

pi/100:

2*pi];

>>y=sin(x).*cos(5*x);

>>plot(y)

>>

2.在[02π]范围内绘制以Y轴为对数的二维曲线图。

y=|1000sin(4x)|+1

解>>x=[0:

pi/100:

2*pi];

>>y=abs(1000*sin(4*x))+1;

>>semilogy(x,y);

>>

3.在[–62]范围内用plot和fplot函数分别绘制二维曲线图。

函数为y=3*x^2+2*x

>>symsxy;

x=[-6:

0.01:

2];

y=3.*x.^2+2.*x;

plot(y)

>>

>>symsxy;

x=[-6:

0.01:

2];

y=3.*x.^2+2.*x;

fplot('3.*x.^2+2.*x',[-62])

4.绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为[02π]。

>>symsxy;

>>x=[0:

pi/100:

2*pi];

>>y=[0:

pi/100:

2*pi];

>>z=sin(x')*cos(y);

>>mesh(x,y,z);

>>symsxy;

>>x=[0:

pi/100:

2*pi];

>>y=[0:

pi/100:

2*pi];

>>z=sin(x')*cos(y);

surf(x,y,z)

五、实验总结

请根据本次实验的内容写出实验总结,总结一下Matlab的数据可视化的特点及其基本操作。

(要求不少于300字)

实验总结

MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

  MATLAB基本绘图函数

   plot:

x轴和y轴均为线性刻度(Linearscale)

  loglog:

x轴和y轴均为对数刻度(Logarithmicscale)

  semilogx:

x轴为对数刻度,y轴为线性刻度

semilogy:

x轴为线性刻度,y轴为对数刻度

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1