Matlab习题与答案2.docx
- 文档编号:11585598
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:12
- 大小:61.38KB
Matlab习题与答案2.docx
《Matlab习题与答案2.docx》由会员分享,可在线阅读,更多相关《Matlab习题与答案2.docx(12页珍藏版)》请在冰豆网上搜索。
Matlab习题与答案2
实验二二维/三维数据的可视化
一、实验目的
熟悉掌握简单的图形绘制函数;掌握MATLA哺用的二维、三维图形及其她图形绘制函数的使用方法;熟悉图形句柄的使用。
二、实验环境
硬件环境:
计算机一台
软件环境:
Matlab6、0
三、实验内容
作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。
由于系统采用面向对象的技术与丰富的矩阵运算,所以在
图形处理方面即常方便又高效。
1、二维绘图
(1)plot函数
函数格式:
plot(x,y)其中x与y为坐标向量
函数功能:
以向量x、y为轴,绘制曲线。
例1在区间OWXW2内,绘制正弦曲线Y=SIN(X),其程序为:
x=0:
pi/100:
2*pi;
y=sin(x);
plot(x,y)
例2同时绘制正、余弦两条曲线Y1=SIN(X)与Y2=C0S(X),其程序为:
x=O:
pi/1OO:
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用不同线型与颜色重新绘制丫仁SIN(X)与Y2=COS(X),其程序为:
x=O:
pi/1OO:
2*pi;y1=sin(x);y2=cos(x);
plot(x,y1,'go',x,y2,'b-、')
其中参数'go'与'b-、’表示图形的颜色与线型。
g表示绿色,0表示图形线型为圆圈;b表示蓝色,-、表示图形线型为点划线。
在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。
title(‘加图形标题');
xlabel('加X轴标记');
ylabel('加Y轴标记');
text(X,Y,'添加文本');
例4在坐标范围OWX2n,-2 x=linspace(0,2*pi,60);生成含有60个数据元素的向量Xy=sin(x); plot(x,y); axis([O2*pi-22]);设定坐标轴范围 2、subplot函数 (1)subplot(m,n,p) 该命令将当前图形窗口分成m 编号,且选定第p个区为当前活动区。 例5在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为: x=linspace(O,2*pi,6O); y=sin(x); z=cos(x); t=sin(x)、/(cos(x)+eps);eps为系统内部常数 ct=cos(x)、/(sin(x)+eps); subplot(2,2,1);分成2X2区域且指定1号为活动区plot(x,y); title('sin(x)'); axis([O2*pi-11]); subplot(2,2,2); plot(x,z); title('cos(x)'); axis([O2*pi-11]); subplot(2,2,3); plot(x,t); title('tangent(x)'); axis([O2*pi-4O4O]);subplot(2,2,4); plot(x,ct); title('cotangent(x)'); axis([02*pi-4040]); (2)多图形窗口 需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命 令。 每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。 句柄显示在图形窗口的标题栏中,即图形窗口标题。 用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。 (3)hold命令若在已存在图形窗口中用命令hold。 发出命令holdon上,添加新绘制的图形。 阅读如下程序: plot命令继续添加新的图形内容,可使用图形保持后,再执行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*0)*cos(2*0)的极坐标图,程序为: 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等。 所有图形对象都具有控制对象显示的属性。 这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标系对象的刻度等。 用户可以获取、设置对象属性,以达到控制对象的目的。 当创建一个对象时,系统用一组默认属性值定制对象,用户梢酝Uget命令获取这些属性值,同时 也可通过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」ines fork=1: size(HI_lines) ifget(Hl_lines(k),'Color')==[010][010]为绿颜色向量 Hl_green=HI_lines(k)返回绿色线条句柄 end end 四、实验习题 1.在[02n]范围内绘制二维曲线图y=sin(x)*cos(5x)解>>x=[0: pi/100: 2*pi]; >>y=sin(x)、*cos(5*x); >>plot(y) >> 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 2.在[02n]范围内绘制以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、A2+2、*x; plot(y) 100 60 40 20- 900 -20[[[1[[[[■— 0100200300400500600700800 >> >>symsxy; x=[-6: 0、01: 2]; y=3、*x、A2+2、*x; fplot('3、*x、A2+2、*x',[-62]) 100 80 60 40 20 -20 -6 -5-4-3-2-1 4.绘制z=sin(x)*cos(y) 的三维网格与三维曲面图 2 y变化范围均为[02n]。 >>symsxy; >>x=[0: pi/100: 2*pi]; >>y=[0: pi/100: 2*pi]; >>z=sin(x')*cos(y); >>mesh(x,y,z); 1 00 >>symsxy; >>x=[0: pi/100: 2*pi]; >>y=[0: pi/100: 2*pi]; >>z=sin(x')*cos(y);surf(x,y,z) □0 五、实验总结 请根据本次实验的内容写出实验总结,总结一下Matlab的数据可视化的特点及其基本操作。 (要求不少于300字) 实验总结 MATLAB自产生之日起就具有方便的数据可视化功能,以将向量与矩阵用图形表现岀 来,并且可以对图形进行标注与打印。 高层次的作图包括二维与三维的可视化、图象处理、动画与表达式作图。 可用于科学计算与工程绘图。 新版本的MATLAB对整个 图形处理功能作了很大的改进与完善,使它不仅在一般数据可视化软件都具有的功能 (例如二维曲线与三维曲面的绘制与处理等)方面更加完善,而且对于一些其她软件所 没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表 现了岀色的处理能力。 同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有 相应的功能函数,保证了用户不同层次的要求。 另外新版本的MATLAB还着重在图形 用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满 足。 MATLAB基本绘图函数 plot: x轴与y轴均为线性刻度(Linearscale) loglog: x轴与y轴均为对数刻度(Logarithmicscale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 习题 答案