您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > Matlab第3章ppt
第三章MATLAB图形系统第三章MATLAB图形系统3.1图形绘制3.2图形标注3.3对数和极坐标系中图形绘制3.4复杂图形绘制3.5坐标轴控制3.6颜色控制3.7高级绘图函数3.8图形函数习题第三章MATLAB图形系统3.1图形绘制这里以产生一个简单的正弦函数曲线为例来说明图形的绘制,这一过程在MATLAB中是很简单的。设要产生0~2π之间的正弦函数,则可按下列步骤进行:(1)产生x轴、y轴数据x=0:pi/20:2*pi;y=sin(x);(2)打开一个新的图形窗口figure(1)第三章MATLAB图形系统(3)绘制出正弦曲线plot(x,y,'r-')其中 'r−' 表示以红色实线绘制出正弦曲线。(4)给图形加上栅格线:gridon这样就可以得到如图3.1所示的正弦曲线。从这一过程可以看出,在MATLAB中建立曲线图形是很方便的。第三章MATLAB图形系统我们还可以将图形窗口进行分割,从而绘制出多条曲线。例如,将图形窗口分割成2×2的窗格,在每个窗格中分别绘制出正弦、余弦、正切、余切函数曲线,其MATLAB程序为x=0:pi/50:2*pi;k=[1265176101];x(k)=[];%删除正切和余切的奇异点figure(1)第三章MATLAB图形系统subplot(2,2,1)plot(x,sin(x)),gridon%绘制正弦函数曲线subplot(2,2,2)plot(x,cos(x)),gridon%绘制余弦函数曲线subplot(2,2,3)plot(x,tan(x)),gridon%绘制正切函数曲线subplot(2,2,4)plot(x,cot(x)),gridon%绘制余切函数曲线第三章MATLAB图形系统图3.1正弦曲线第三章MATLAB图形系统执行后得到如图3.2所示的三角函数曲线。图3.2常用三角函数的曲线第三章MATLAB图形系统3.2图形标注绘制图形后,还要给图形进行标注。例如,可以给每个图加上标题、坐标轴标记和曲线说明等。给图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;figure(1)plot(x,y1,'r-',x,y2,'k.'),gridonlegend('\ity=x^2','\ity=x^3')title('y=x^2和y=x^3曲线')xlabel('x'),ylabel('y')第三章MATLAB图形系统执行后得到如图3.4所示的曲线。从这一示例可以看出,MATLAB标注函数中可以采用中文字符,这极大地方便了用户。特别值得一提的是,在字符串中,“^”表示上标,“_”表示下标。第三章MATLAB图形系统图3.4插图说明使用示例第三章MATLAB图形系统利用text函数也可以对曲线进行标注。例如,在同一张图上绘制出正弦和余弦曲线,则MATLAB程序为x=0:pi/50:2*pi;y1=sin(x);y2=cos(x);figure(1)plot(x,y1,'k-',x,y2,'k-'),gridontext(pi,0.05,'\leftarrowsin(\alpha)')text(pi/4-0.05,0.05,'cos(\alpha)\rightarrow')title('sin(\alpha)andcos(\alpha)')xlabel('\alpha'),ylabel('sin(\alpha)andcos(\alpha)')第三章MATLAB图形系统图3.5文本标注使用示例第三章MATLAB图形系统3.3对数和极坐标系中图形绘制有时变量变化范围很大,如x轴从0.01到100,这时如果仍采用plot绘图,就会失去局部可视性,因此应采用对数坐标系进行绘图。例如,求0.01~100之间的常用对数(以10为底的对数),MATLAB程序为x=0.01:.01:100;y=log10(x);figure(1)subplot(2,1,1)plot(x,y,'k-'),gridontitle('\ity=log_{10}(x)inCartesiancoordinates'),ylabel('y')第三章MATLAB图形系统subplot(2,1,2),gridonsemilogx(x,y,'k-')%半对数绘图title('\ity=log_{10}(x)inSemi-logcoordinates')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'),gridontitle('PlotusingCartesiancoordinates')subplot(2,1,2)polar(c2,c1,'rx')gtext('Plotusingpolarcoordinates')第三章MATLAB图形系统在控制系统中,可以求出系统的零极点,然后利用polar函数在极坐标系中绘制出零极点图,直观地显示出系统的零极点,这有助于我们对控制系统进行深入了解。如输入MATLAB程序:num=[11.1];den=[12574];[z,p,k]=tf2zp(num,den);c1=abs(z);c2=angle(z);c3=abs(p);c4=angle(p);figure(1)polar(c4,c3,'bx')holdon,polar(c2,c1,'ro')gtext('极坐标系中零极点的表示')第三章MATLAB图形系统图3.7笛卡尔和极坐标系中特征值的表示第三章MATLAB图形系统图3.8极坐标系中系统零极点的表示极坐标系中零极点的表示第三章MATLAB图形系统特殊二维绘图函数bar––––绘制直方图polar––––绘制极坐标图hist––––绘制统计直方图stairs––––绘制阶梯图stem––––绘制火柴杆图rose––––绘制统计扇形图comet––––绘制彗星曲线errorbar––––绘制误差棒图area––––区域图pie––––饼图第三章MATLAB图形系统例,绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)01234567-1-0.8-0.6-0.4-0.200.20.40.60.81第三章MATLAB图形系统例:绘制火柴杆绘图t=0:0.2:2*pi;y=cos(t);stem(y)05101520253035-1-0.8-0.6-0.4-0.200.20.40.60.81第三章MATLAB图形系统例:绘制直方图t=0:0.2:2*pi;y=cos(t);bar(y)05101520253035-1-0.8-0.6-0.4-0.200.20.40.60.81第三章MATLAB图形系统例:绘制彗星曲线图t=-pi:pi/500:pi;y=tan(sin(t))-sin(tan(t));comet(t,y)-3-2-10123-2.5-2-1.5-1-0.500.511.522.5第三章MATLAB图形系统x=magic(6);area(x)11.522.533.544.555.56020406080100120第三章MATLAB图形系统x=[1234567];y=[0001000];pie(x,y)4%7%11%14%18%21%25%第三章MATLAB图形系统pie(x,y,{'North','South','East','West','middle','fa','white'})NorthSouthEastWestmiddlefawhite第三章MATLAB图形系统3.4复杂图形绘制在同一个图形窗口中绘制多条曲线是MATLAB的一大功能,这可以有多种应用方法。第一种方法是将曲线数据保存在n×m的矩阵y中,而x为相应的x轴向量n×1或1×n,则plot(x,y)命令可以在同一个图形窗口中绘制出m条曲线。这种方法非常适用于由其它软件产生的数据,然后由load命令读入到MATLAB中,并绘制出曲线。例如,MATLAB提供了一个多峰函数peaks.m,其函数表达式为222222y)1x(yx53)1y(x2e31eyx5x10e)x1(3)y,x(f第三章MATLAB图形系统利用这一函数,可以方便地产生多条曲线的数据[x,y]=meshgrid(-3:0.15:3);%产生41×41的输入矩阵z=peaks(x,y);%计算相应的峰值函数然后利用plot函数可直接绘制出这41条曲线x1=x(1,:);plot(x1,z),gridon这时可得到如图3.9所示的多条曲线。第三章MATLAB图形系统图3.9多峰函数的多条曲线第三章MATLAB图形系统绘制多条曲线的第二种方法是在同一个plot函数中分别指定每条曲线的坐标轴数据,即采用plot(x1,y1,x2,y2,…)。例如,对于下列两个函数(这是神经网络中的两个重要函数:logsig和tansig):x1e11y第三章MATLAB图形系统可分别求出−5~5之间的值,在同一张图上画出曲线,并利用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.'),gridonlegend('logsig函数','tansig函数',4)title('多条曲线')第三章MATLAB图形系统图3.10logsig和tansig函数曲线第三章MATLAB图形系统绘制多条曲线的第三种方法是利用holdon命令。先在图形窗口中绘制出第一条曲线,然后执行holdon(保持原有图像元素)命令,最后绘制出第二条、第三条等曲线。例如,对于图3.10中的曲线,也可以采用下列的MATLAB程序获得:figure(1)plot(x,y1,'r-')holdonplot(x,y2,'b--')gridon第三章MATLAB图形系统利用这种方法在绘制曲线后,可同时在数据点上以特殊记号进行标注。例如,在绘制出简单的正弦函数后,可以用圆圈表示各个数据点,程序如下:x=0:pi/20:2*pi;y=sin(x);figure(1)plot(x,y,'r-')holdonplot(x,y,'bo'),gridontitle('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),gridontitle('sin(t)andcos(t)')text(0,0,'\leftarrowsin(t)')tex
本文标题:Matlab第3章ppt
链接地址:https://www.777doc.com/doc-3447484 .html