matlab程序设计第3章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《matlab程序设计第3章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 程序设计 课件
- 资源描述:
-
1、第三章 MATLAB图形系统 第三章 MATLAB图形系统 3.1 图形绘制图形绘制3.2 图形标注图形标注3.3 对数和极坐标系中图形绘制对数和极坐标系中图形绘制3.4 复杂图形绘制复杂图形绘制3.5 坐标轴控制坐标轴控制3.6 颜色控制颜色控制 3.7 高级绘图函数高级绘图函数 3.8 图形函数图形函数 习题习题 第三章 MATLAB图形系统 3.1 图图 形形 绘绘 制制 这里以产生一个简单的正弦函数曲线为例来说明图形的绘制,这一过程在MATLAB中是很简单的。设要产生02之间的正弦函数,则可按下列步骤进行:(1)产生x轴、y轴数据 x=0:pi/20:2*pi;y=sin(x);(2)
2、打开一个新的图形窗口 figure(1)第三章 MATLAB图形系统(3)绘制出正弦曲线 plot(x,y,r-)其中r表示以红色实线绘制出正弦曲线。(4)给图形加上栅格线:grid on这样就可以得到如图3.1所示的正弦曲线。从这一过程可以看出,在MATLAB中建立曲线图形是很方便的。第三章 MATLAB图形系统 我们还可以将图形窗口进行分割,从而绘制出多条曲线。例如,将图形窗口分割成22的窗格,在每个窗格中分别绘制出正弦、余弦、正切、余切函数曲线,其MATLAB程序为x=0:pi/50:2*pi;k=1 26 51 76 101;x(k)=;删除正切和余切的奇异点figure(1)第三章
3、MATLAB图形系统 subplot(2,2,1)plot(x,sin(x),grid on 绘制正弦函数曲线subplot(2,2,2)plot(x,cos(x),grid on 绘制余弦函数曲线subplot(2,2,3)plot(x,tan(x),grid on 绘制正切函数曲线subplot(2,2,4)plot(x,cot(x),grid on 绘制余切函数曲线 第三章 MATLAB图形系统 图3.1 正弦曲线 第三章 MATLAB图形系统 执行后得到如图3.2所示的三角函数曲线。图3.2 常用三角函数的曲线 第三章 MATLAB图形系统 3.2 图图 形形 标标 注注 绘制图形后,
4、还要给图形进行标注。例如,可以给每个图加上标题、坐标轴标记和曲线说明等。给图3.1加上标题和轴标记,可输入title(sin(alpha)xlabel(alpha)ylabel(sin(alpha)则可以得到如图3.3所示的结果。这里alpha表示,取自于Tex字符集,详见附录A的text函数中的字符集。第三章 MATLAB图形系统 图3.3 含标题的正弦曲线 第三章 MATLAB图形系统 利用legend函数可对图中的曲线进行说明。例如,在同一张图上可得到y=x2和y=x3曲线,然后利用legend函数对曲线进行标注。MATLAB程序为x=2:.1:2;y1=x.2;y2=x.3;figur
5、e(1)plot(x,y1,r-,x,y2,k.),grid onlegend(ity=x2,ity=x3)title(y=x2和y=x3曲线)xlabel(x),ylabel(y)第三章 MATLAB图形系统 执行后得到如图3.4所示的曲线。从这一示例可以看出,MATLAB标注函数中可以采用中文字符,这极大地方便了用户。特别值得一提的是,在字符串中,“”表示上标,“_”表示下标。第三章 MATLAB图形系统 图3.4 插图说明使用示例 第三章 MATLAB图形系统 利用text函数也可以对曲线进行标注。例如,在同一张图上绘制出正弦和余弦曲线,则MATLAB程序为x=0:pi/50:2*pi;
6、y1=sin(x);y2=cos(x);figure(1)plot(x,y1,k-,x,y2,k-),grid ontext(pi,0.05,leftarrow sin(alpha)text(pi/4-0.05,0.05,cos(alpha)rightarrow)title(sin(alpha)and cos(alpha)xlabel(alpha),ylabel(sin(alpha)and cos(alpha)第三章 MATLAB图形系统 图3.5 文本标注使用示例 第三章 MATLAB图形系统 3.3 对数和极坐标系中图形绘制对数和极坐标系中图形绘制 有时变量变化范围很大,如x轴从0.01到
7、100,这时如果仍采用plot绘图,就会失去局部可视性,因此应采用对数坐标系进行绘图。例如,求0.01100之间的常用对数(以10为底的对数),MATLAB程序为x=0.01:.01:100;y=log10(x);figure(1)subplot(2,1,1)plot(x,y,k-),grid ontitle(ity=log_10(x)in Cartesian coordinates),ylabel(y)第三章 MATLAB图形系统 subplot(2,1,2),grid onsemilogx(x,y,k-)半对数绘图title(ity=log_10(x)in Semi-log coordin
8、ates)xlabel(x),ylabel(y)第三章 MATLAB图形系统 图3.6 笛卡尔和对数坐标系中曲线的对比 第三章 MATLAB图形系统 对于任一矩阵,通过eig函数可求出其特征值,从而了解矩阵的特性,为此希望能够直观地显示出特征值。由于特征值一般为复数,因此可利用polar函数在极坐标系中进行表示。例如,输入:第三章 MATLAB图形系统 a=randn(2,2);b=eig(a)c1=abs(b),c2=angle(b)figure(1)subplot(2,1,1)plot(b,rx),grid ontitle(Plot using Cartesian coordinates)
9、subplot(2,1,2)polar(c2,c1,rx)gtext(Plot using polar coordinates)第三章 MATLAB图形系统 在控制系统中,可以求出系统的零极点,然后利用polar函数在极坐标系中绘制出零极点图,直观地显示出系统的零极点,这有助于我们对控制系统进行深入了解。如输入MATLAB程序:num=1 1.1;den=1 2 5 7 4;z,p,k=tf2zp(num,den);c1=abs(z);c2=angle(z);c3=abs(p);c4=angle(p);figure(1)polar(c4,c3,bx)hold on,polar(c2,c1,ro
10、)gtext(极坐标系中零极点的表示)第三章 MATLAB图形系统 图3.7 笛卡尔和极坐标系中特征值的表示 第三章 MATLAB图形系统 图3.8 极坐标系中系统零极点的表示 极坐标系中零极点的表示第三章 MATLAB图形系统 3.4 复杂图形绘制复杂图形绘制 在同一个图形窗口中绘制多条曲线是MATLAB的一大功能,这可以有多种应用方法。第一种方法是将曲线数据保存在nm的矩阵y中,而x为相应的x轴向量n1或1n,则plot(x,y)命令可以在同一个图形窗口中绘制出m条曲线。这种方法非常适用于由其它软件产生的数据,然后由load命令读入到MATLAB中,并绘制出曲线。例如,MATLAB提供了一
11、个多峰函数peaks.m,其函数表达式为 222222y)1x(yx53)1y(x2e31e yx5x10e)x1(3)y,x(f第三章 MATLAB图形系统 利用这一函数,可以方便地产生多条曲线的数据x,y=meshgrid(-3:0.15:3);产生4141的输入矩阵z=peaks(x,y);计算相应的峰值函数然后利用plot函数可直接绘制出这41条曲线x1=x(1,:);plot(x1,z),grid on这时可得到如图3.9所示的多条曲线。第三章 MATLAB图形系统 图3.9 多峰函数的多条曲线 第三章 MATLAB图形系统 绘制多条曲线的第二种方法是在同一个plot函数中分别指定每
12、条曲线的坐标轴数据,即采用plot(x1,y1,x2,y2,)。例如,对于下列两个函数(这是神经网络中的两个重要函数:logsig和tansig):x1e11y第三章 MATLAB图形系统 可分别求出55之间的值,在同一张图上画出曲线,并利用legend函数对曲线进行说明,MATLAB程序为x=-5:.1:5;y1=1./(1+exp(-x);y2=(1-exp(-x).*y1;figure(1)plot(x,y1,r-,x,y2,b.),grid onlegend(logsig函数,tansig函数,4)title(多条曲线)第三章 MATLAB图形系统 图3.10 logsig和tansi
13、g函数曲线 第三章 MATLAB图形系统 绘制多条曲线的第三种方法是利用hold on命令。先在图形窗口中绘制出第一条曲线,然后执行hold on(保持原有图像元素)命令,最后绘制出第二条、第三条等曲线。例如,对于图3.10中的曲线,也可以采用下列的MATLAB程序获得:figure(1)plot(x,y1,r-)hold onplot(x,y2,b-)grid on 第三章 MATLAB图形系统 利用这种方法在绘制曲线后,可同时在数据点上以特殊记号进行标注。例如,在绘制出简单的正弦函数后,可以用圆圈表示各个数据点,程序如下:x=0:pi/20:2*pi;y=sin(x);figure(1)p
14、lot(x,y,r-)hold onplot(x,y,bo),grid ontitle(sin(alpha)xlabel(alpha),ylabel(sin(alpha)第三章 MATLAB图形系统 图3.11 正弦曲线 第三章 MATLAB图形系统 利用plotyy函数可绘制出双y轴的图形,这样在同一张图上表示两条曲线时,可拥有各自的y轴。例如,在同一张纸上绘制出双y轴的y1=sin(t)和y2=2cos(t)函数,MATLAB程序为t=-pi:pi/20:pi;y1=sin(t);y2=2*cos(t);plotyy(t,y1,t,y2),grid ontitle(sin(t)and co
15、s(t)text(0,0,leftarrow sin(t)text(pi/2,0,leftarrow 2cos(t)第三章 MATLAB图形系统 执行后可得到如图3.12所示的结果。图中左边轴为第一条曲线的垂直轴,右边轴为第二条曲线的垂直轴,从图中可以看出,虽然y1和y2具有不同的值域,但由于采用了双y轴,因此两条曲线在显示上具有相同的幅值。第三章 MATLAB图形系统 图3.12 双y轴正余弦曲线 第三章 MATLAB图形系统 3.5 坐坐标标轴轴控控制制 利用box函数可以控制图形的上边框和右边框,box on、box off可分别显示和隐去上边框和右边框,box命令为乒乓开关,可以在这两
16、种状态之间切换。为了更加灵活地控制各个边框(坐标轴),可以采用axes命令。例如在0,pi/2之间绘制出y=tan(x)曲线,然后利用box off命令去掉边框,MATLAB程序为x=0:.025:pi/2;y=tan(x);figure(1)plot(x,y,r-o),grid onbox offtitle(正切函数),xlabel(角度(弧度)第三章 MATLAB图形系统 图3.13 正切函数曲线 第三章 MATLAB图形系统 axis(与上面提到的axes不同)命令用于控制坐标轴的刻度。一般在绘制曲线时,系统会根据所采用的数据自动生成适当的坐标轴刻度,但有时需要进行修改,比如在两个曲线对
17、比时,应采用相同的比例因子,以便直观地比较大小。设已由其它系统测量出两种方法的误差,保存于err.dat中,其中第一列为采样时刻,第二、三列分别为两种方法的测量值。现直接绘制出误差曲线,同时绘制出利用axis修改成相同比例后的误差曲线。MATLAB程序为 第三章 MATLAB图形系统 load err.datt=err(:,1);e1=err(:,2);e2=err(:,3);figure(1)subplot(2,2,1),plot(t,e1,k),title(误差1)subplot(2,2,3),plot(t,e2,k),title(误差2)subplot(2,2,2),plot(t,e1,
18、k),title(坐标轴调整后的误差1)axis(0.3-4 4)subplot(2,2,4),plot(t,e2,k),title(坐标轴调整后的误差2)axis(0.3-4 4)第三章 MATLAB图形系统 图3.14 测量误差的比较 第三章 MATLAB图形系统 为了更清楚地观察曲线的局部特性,也可以修改坐标轴刻度,例如,对于一个复杂函数y=cos(tan(x)第三章 MATLAB图形系统 利用plot函数绘制出曲线时,在x=0.5附近区域几乎看不清楚。现在利用axis函数调整x轴的刻度,则可以比较清楚地看到这一局部区域。MATLAB程序为x=0:1/3000:1;y=cos(tan(p
19、i*x);figure(1)subplot(2,1,1),plot(x,y)title(itcos(tan(pix)subplot(2,1,2),plot(x,y)axis(0.4 0.6-1 1);title(复杂函数的局部透视)第三章 MATLAB图形系统 axis equal可使绘制图形的x、y轴等长,这样可以使绘制的圆成为真正的圆。例如:t=0:pi/20:2*pi;figure(1)subplot(2,2,1),plot(sin(t),cos(t)title(圆形轨迹)subplot(2,2,2),plot(sin(t),2*cos(t)title(椭圆形轨迹)subplot(2,2
20、,3),plot(sin(t),cos(t),axis squaretitle(调整后的圆形轨迹)subplot(2,2,4),plot(sin(t),2*cos(t),axis squaretitle(调整后的椭圆形轨迹)执行后得到如图3.16所示的轨迹。第三章 MATLAB图形系统 图3.15 复杂函数曲线的局部透视 第三章 MATLAB图形系统 图3.16 调整前、后的圆轨迹 第三章 MATLAB图形系统 利用axis off命令可以关闭坐标轴的显示,产生不含有坐标轴的图形。例如:t=0:pi/20:2*pi;x,y=meshgrid(t);z=sin(x).*cos(y);figure
21、(1)plot(t,z),axis(0 2*pi-1 1)box off,axis offtitle(无坐标轴和边框图形)执行后得到如图3.17所示的曲线。第三章 MATLAB图形系统 图3.17 无坐标轴与边框的曲线 第三章 MATLAB图形系统 3.6 颜颜 色色 控控 制制 在绘制曲线时可直接指定曲线的颜色,在标注文本如title,xlabel,ylabel,zlabel,text命令中,可利用文本特性Color来指定文本的颜色。例如,下列的MATLAB程序可产生红色的曲线、绿色的标题、蓝色的x与y轴标注和黑色的曲线标注。第三章 MATLAB图形系统 x=-pi:pi/20:pi;y=e
22、xp(-2*sin(x);figure(1)plot(x,y,r-),grid ontitle(绿色的标题(y=e-2sin(x),Color,g)xlabel(蓝色的x轴标注,Color,b)ylabel(蓝色的y轴标注,Color,b)text(0.6,3.8,leftarrow黑色的曲线标注,Color,k)第三章 MATLAB图形系统 图3.18 颜色控制 第三章 MATLAB图形系统 利用colormap函数可以改变每种颜色的色调,MATLAB提供了许多种不同用途的颜色板。为了进一步了解各种颜色板的颜色,可输入cmap=colormap;L=length(cmap);x=1:L;y=
23、x*ones(size(x);figure(1)bar(x(1:2),y(1:2,:)title(gray颜色板的颜色)colormap(gray)第三章 MATLAB图形系统 图3.19 gray(灰度)颜色板的颜色 第三章 MATLAB图形系统 MATLAB专门提供了人体脊骨的图像数据(spine),利用bone颜色板可更清晰地显示这一类图像。MATLAB程序为load spineimage(X)colormap bonetitle(人体脊骨图)执行后得到如图3.20所示的人体脊骨图。第三章 MATLAB图形系统 图3.20 人体脊骨图 第三章 MATLAB图形系统 3.7 高级绘图函数高
24、级绘图函数 除了前面介绍的以二维平面为图形窗口的绘图功能外,MATLAB还提供了一些功能很强的高级绘图函数,如表3.1所示,这里分类给出一些函数的使用说明。第三章 MATLAB图形系统 区域、条形及其饼图 bar,barh bar3,bar3h pie pie3 area 绘制出条形图 绘制出三维条形图 绘制出饼图 绘制出三维饼图 二维图形的填充区域 等高线绘图 contour contour3 contourf 绘制矩阵的等高线 绘制出矩阵的三维等高线 绘制并填充二维等高线图 方向与速度绘图 comet comet3 compass feather quiver quiver3 绘制二维彗星
25、图形 绘制三维彗星图形 绘制出罗盘图 绘制速度向量图 绘制颤抖或速度图 绘制三维的颤抖或速度图 表表3.1 高级绘图函数高级绘图函数 第三章 MATLAB图形系统 离散数据绘图 stem stem3 stairs 绘制出离散序列数据 在三维空间中绘制出离散序列数据 绘制梯形图 柱状图 hist histc rose 绘制出柱状图 绘制出柱状图 绘制角度的柱状图 多边形和曲面 cylinder sphere ellipsoid polyarea inpolygon fill fill3 ribbon slice waterfall mesh,meshc,meshz meshgrid surf,s
展开阅读全文