MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章

上传人:E**** 文档编号:89355830 上传时间:2019-05-23 格式:PPT 页数:258 大小:3.33MB
返回 下载 相关 举报
MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章_第1页
第1页 / 共258页
MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章_第2页
第2页 / 共258页
MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章_第3页
第3页 / 共258页
MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章_第4页
第4页 / 共258页
MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章_第5页
第5页 / 共258页
点击查看更多>>
资源描述

《MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章》由会员分享,可在线阅读,更多相关《MATLAB 7.X程序设计语言 第二版 楼顺天1-4 第3章(258页珍藏版)》请在金锄头文库上搜索。

1、第三章 MATLAB图形系统,3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制 3.6 颜色控制 3.7 高级绘图函数 3.8 图形函数 习题,3.1 图 形 绘 制,这里以产生一个简单的正弦函数曲线为例来说明图形的绘制,这一过程在MATLAB中是很简单的。设要产生02之间的正弦函数,则可按下列步骤进行: (1) 产生x轴、y轴数据 x=0:pi/20:2*pi; y=sin(x); (2) 打开一个新的图形窗口 figure(1),(3) 绘制出正弦曲线 plot(x,y, r-) 其中 r 表示以红色实线绘制出正弦曲线。 (4)

2、 给图形加上栅格线: grid on 这样就可以得到如图3.1所示的正弦曲线。从这一过程可以看出,在MATLAB中建立曲线图形是很方便的。,我们还可以将图形窗口进行分割,从而绘制出多条曲线。例如,将图形窗口分割成22的窗格,在每个窗格中分别绘制出正弦、余弦、正切、余切函数曲线,其MATLAB程序为 x=0:pi/50:2*pi; k=1 26 51 76 101; x(k)=; 删除正切和余切的奇异点 figure(1),subplot(2,2,1) plot(x,sin(x), grid on 绘制正弦函数曲线 subplot(2,2,2) plot(x,cos(x), grid on 绘制

3、余弦函数曲线 subplot(2,2,3) plot(x,tan(x), grid on 绘制正切函数曲线 subplot(2,2,4) plot(x,cot(x), grid on 绘制余切函数曲线,图3.1 正弦曲线,执行后得到如图3.2所示的三角函数曲线。,图3.2 常用三角函数的曲线,3.2 图 形 标 注,绘制图形后,还要给图形进行标注。例如,可以给每个图加上标题、坐标轴标记和曲线说明等。给图3.1加上标题和轴标记,可输入 title(sin(alpha) xlabel(alpha) ylabel(sin(alpha) 则可以得到如图3.3所示的结果。这里alpha表示,取自于Tex

4、字符集,详见附录A的text函数中的字符集。,图3.3 含标题的正弦曲线,利用legend函数可对图中的曲线进行说明。例如,在同一张图上可得到y=x2和y=x3曲线,然后利用legend函数对曲线进行标注。MATLAB程序为 x=2:.1:2; y1=x.2; y2=x.3; figure(1) plot(x,y1, r-, x, y2, k.), grid on legend(ity=x2, ity=x3) title(y=x2和y=x3曲线) xlabel(x), ylabel(y),执行后得到如图3.4所示的曲线。从这一示例可以看出,MATLAB标注函数中可以采用中文字符,这极大地方便了

5、用户。特别值得一提的是,在字符串中,“”表示上标,“_”表示下标。,图3.4 插图说明使用示例,利用text函数也可以对曲线进行标注。例如,在同一张图上绘制出正弦和余弦曲线,则MATLAB程序为 x=0:pi/50:2*pi; y1=sin(x); y2=cos(x); figure(1) plot(x, y1, k-, x, y2, k-), grid on text(pi, 0.05, leftarrow sin(alpha) text(pi/4-0.05, 0.05, cos(alpha)rightarrow) title(sin(alpha) and cos(alpha) xlabel

6、(alpha), ylabel(sin(alpha) and cos(alpha),图3.5 文本标注使用示例,3.3 对数和极坐标系中图形绘制,有时变量变化范围很大,如x轴从0.01到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 on title(ity=log_10(x) in Cartesian coordinates), yla

7、bel(y),subplot(2,1,2), grid on semilogx(x,y,k-) 半对数绘图 title(ity=log_10(x) in Semi-log coordinates) xlabel(x), ylabel(y),图3.6 笛卡尔和对数坐标系中曲线的对比,对于任一矩阵,通过eig函数可求出其特征值,从而了解矩阵的特性,为此希望能够直观地显示出特征值。由于特征值一般为复数,因此可利用polar函数在极坐标系中进行表示。例如,输入:,a=randn(2,2); b=eig(a) c1=abs(b), c2=angle(b) figure(1) subplot(2,1,1)

8、 plot(b,rx), grid on title(Plot using Cartesian coordinates) subplot(2,1,2) polar(c2,c1,rx) gtext(Plot using polar coordinates),在控制系统中,可以求出系统的零极点,然后利用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=a

9、ngle(p); figure(1) polar(c4,c3,bx) hold on,polar(c2,c1,ro) gtext(极坐标系中零极点的表示),图3.7 笛卡尔和极坐标系中特征值的表示,图3.8 极坐标系中系统零极点的表示,3.4 复杂图形绘制,在同一个图形窗口中绘制多条曲线是MATLAB的一大功能,这可以有多种应用方法。第一种方法是将曲线数据保存在nm的矩阵y中,而x为相应的x轴向量n1或1n,则plot(x,y)命令可以在同一个图形窗口中绘制出m条曲线。这种方法非常适用于由其它软件产生的数据,然后由load命令读入到MATLAB中,并绘制出曲线。例如,MATLAB提供了一个多峰

10、函数peaks.m,其函数表达式为,利用这一函数,可以方便地产生多条曲线的数据 x,y=meshgrid(-3:0.15:3); 产生4141的输入矩阵 z=peaks(x,y); 计算相应的峰值函数 然后利用plot函数可直接绘制出这41条曲线 x1=x(1,:); plot(x1, z), grid on 这时可得到如图3.9所示的多条曲线。,图3.9 多峰函数的多条曲线,绘制多条曲线的第二种方法是在同一个plot函数中分别指定每条曲线的坐标轴数据,即采用plot(x1, y1, x2, y2,)。例如,对于下列两个函数(这是神经网络中的两个重要函数:logsig和tansig):,可分别

11、求出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 on legend(logsig函数, tansig函数, 4) title(多条曲线),图3.10 logsig和tansig函数曲线,绘制多条曲线的第三种方法是利用hold on命令。先在图形窗口中绘制出第一条曲线,然后执行hold on(保持原有图像元素)命令,最后绘制出第二条、第三条等曲线。例如,对于图3.10中的曲线,也

12、可以采用下列的MATLAB程序获得: figure(1) plot(x,y1,r-) hold on plot(x,y2,b-) grid on,利用这种方法在绘制曲线后,可同时在数据点上以特殊记号进行标注。例如,在绘制出简单的正弦函数后,可以用圆圈表示各个数据点,程序如下: x=0:pi/20:2*pi; y=sin(x); figure(1) plot(x,y,r-) hold on plot(x,y,bo), grid on title(sin(alpha) xlabel(alpha),ylabel(sin(alpha),图3.11 正弦曲线,利用plotyy函数可绘制出双y轴的图形,这

13、样在同一张图上表示两条曲线时,可拥有各自的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 on title( sin(t) and cos(t) ) text(0,0,leftarrow sin(t) text(pi/2,0,leftarrow 2cos(t),执行后可得到如图3.12所示的结果。图中左边轴为第一条曲线的垂直轴,右边轴为第二条曲线的垂直轴,从图中可以看出,虽然y1和y2具有不同的值域,

14、但由于采用了双y轴,因此两条曲线在显示上具有相同的幅值。,图3.12 双y轴正余弦曲线,3.5 坐 标 轴 控 制,利用box函数可以控制图形的上边框和右边框,box on、box off可分别显示和隐去上边框和右边框,box命令为乒乓开关,可以在这两种状态之间切换。为了更加灵活地控制各个边框(坐标轴),可以采用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 on box off title(正切函数), xlab

15、el(角度(弧度),图3.13 正切函数曲线,axis(与上面提到的axes不同)命令用于控制坐标轴的刻度。一般在绘制曲线时,系统会根据所采用的数据自动生成适当的坐标轴刻度,但有时需要进行修改,比如在两个曲线对比时,应采用相同的比例因子,以便直观地比较大小。设已由其它系统测量出两种方法的误差,保存于err.dat中,其中第一列为采样时刻,第二、三列分别为两种方法的测量值。现直接绘制出误差曲线,同时绘制出利用axis修改成相同比例后的误差曲线。MATLAB程序为,load err.dat t=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,k),title(坐标轴调整后的误差1) axis(0 .3 -4 4) subplot(2,2,4), plot(t,e2,k),title(坐标轴调整后的误差2) axis(0 .3 -4 4),图3.14 测量误差的比较,为了更清楚地观察曲线的局部特性,也可以修改坐标轴刻度,例如,对于一个复杂函数 y=cos(tan(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号