许钢2019/8/3Matlab语言及其在电子信息工程中的应用1Matlab语言及其在电子信息工程中的应用主讲:许钢(V1.2)许钢2019/8/3Matlab语言及其在电子信息工程中的应用2第五讲MATLAB的图形功能一、MATLAB作图入门二、三维曲线图和二元函数的图形三、图形的标注四、图象表现函数*五、色彩*六、图形的控制许钢2019/8/3Matlab语言及其在电子信息工程中的应用3第五讲MATLAB的图形功能一、MATLAB作图入门1、单个向量画图x=[1,3,5,2,6,3,9,7,5,3,1];subplot(141);plot(x)%画连线图(一般用于连续函数图形)subplot(142);stem(x)%画脉冲图(一般用于离散函数图形)subplot(143);stairs(x)%画阶梯图subplot(144);bar(x)%画条形图(一般用于统计图形)0510151234567891005101502468100510151234567891012345678910110246810许钢2019/8/3Matlab语言及其在电子信息工程中的应用4第五讲MATLAB的图形功能一、MATLAB作图入门2、两个向量画图X=1:5;Y=[0.7,0.5,0.2,-0.4,0.6];subplot(1,2,1);plot(X,Y)%画连线图=plot(X,Y,'-')subplot(1,2,2);plot(X,Y,'*')%画散点图参见教材“线型、点型和颜色”表11.522.533.544.55-0.4-0.200.20.40.60.8111.522.533.544.55-0.4-0.200.20.40.60.81许钢2019/8/3Matlab语言及其在电子信息工程中的应用5第五讲MATLAB的图形功能一、MATLAB作图入门3、一元函数画图x=-3:0.1:3;y=x.^3-x+1;plot(x,y)grid%加上网格title('一元函数作图')%加上标题许钢2019/8/3Matlab语言及其在电子信息工程中的应用6第五讲MATLAB的图形功能一、MATLAB作图入门4、极坐标作图(1)阿基米得螺线t=0:pi/180:4*pi;y=t;polar(t,y)许钢2019/8/3Matlab语言及其在电子信息工程中的应用7第五讲MATLAB的图形功能一、MATLAB作图入门4、极坐标作图(2)三叶玫瑰线t=0:pi/180:2*pi;y=2*cos(3*t);polar(t,y)许钢2019/8/3Matlab语言及其在电子信息工程中的应用8第五讲MATLAB的图形功能一、MATLAB作图入门5、三维曲面图作z=x^2+y^2的图形x=-4:0.2:4;y=x;[X,Y]=meshgrid(x,y);%生成网格点的(x,y)坐标Z=X.^2+Y.^2;subplot(121);mesh(X,Y,Z)%生成网状图(网格透明)subplot(122);surf(X,Y,Z)%生成网格曲面图(网格由平面填充)shadingflat;%去曲面网格shadinginterp;%平滑表面许钢2019/8/3Matlab语言及其在电子信息工程中的应用9第五讲MATLAB的图形功能二、三维曲线图和二元函数的图形1、三维双纽线t=0:0.05:100;x=t;y=sin(t);z=sin(2*t);plot3(x,y,z,'b-')许钢2019/8/3Matlab语言及其在电子信息工程中的应用10第五讲MATLAB的图形功能二、三维曲线图和二元函数的图形2、圆柱螺旋线t=0:pi/180:10*pi;x=cos(t);y=sin(t);z=t;plot3(x,y,z)许钢2019/8/3Matlab语言及其在电子信息工程中的应用11第五讲MATLAB的图形功能二、三维曲线图和二元函数的图形3、环面螺线t=0:pi/180:2*pi;z=cos(20*t);y=(4+sin(20*t)).*sin(t);x=(4+sin(20*t)).*cos(t);plot3(x,y,z)许钢2019/8/3Matlab语言及其在电子信息工程中的应用12第五讲MATLAB的图形功能二、三维曲线图和二元函数的图形*4、等高线clf%清除原有图形z=peaks(30);contour(z,6)%等高线[X,Y,Z]=peaks(30);surfc(X,Y,Z)%三维曲面与等高线组合图axis([-33-33-105])许钢2019/8/3Matlab语言及其在电子信息工程中的应用13第五讲MATLAB的图形功能二、三维曲线图和二元函数的图形*5、柱面与球面(1)圆柱面t=0:pi/180:2*pi;r=1;[X,Y,Z]=cylinder(r,50);%画圆柱面mesh(X,Y,Z)(2)旋转面t=0:pi/12:3*pi;r=abs(exp(-0.25*t).*sin(t));[X,Y,Z]=cylinder(r,30);mesh(X,Y,Z)许钢2019/8/3Matlab语言及其在电子信息工程中的应用14第五讲MATLAB的图形功能二、三维曲线图和二元函数的图形*5、柱面与球面(3)球面a、球面画法[X,Y,Z]=sphere(30);mesh(X,Y,Z)axis('square')b、地球表面气温分布示意图[X,Y,Z]=sphere(30);T=abs(Z);surf(X,Y,Z,T)caxis([-max(max(T)),max(max(T))])colormap(hot)许钢2019/8/3Matlab语言及其在电子信息工程中的应用15第五讲MATLAB的图形功能三、图形的标注1、命令方式title('标题')xlable('x轴的文字说明')ylable('y轴的文字说明')text(x,y,'string')%在二维图形中在坐标为(x,y)处插入文字说明;gridon%显示栅格许钢2019/8/3Matlab语言及其在电子信息工程中的应用16第五讲MATLAB的图形功能三、图形的标注1、命令方式例:t=-3:0.1:3;y=t.^3-t+1;plot(t,y,'g-')%画出函数的图形,'g-'表示用绿色实线画图gridtext(1,20,'x^3-x+1')%(1,20)处插入文本title('绿色加网格三次函数的图形')%加标题holdon%保留当前图形使下一个图形叠加上去y1=t.*sin(t);plot(t,y1,'r-.')利用M文件单步执行!许钢2019/8/3Matlab语言及其在电子信息工程中的应用17第五讲MATLAB的图形功能三、图形的标注2、在图形窗口进行标注x轴的标注标题的标注标注图例和颜色条修改坐标许钢2019/8/3Matlab语言及其在电子信息工程中的应用18第五讲MATLAB的图形功能*四、图象表现函数image(X)%表现图象的矩阵colormap(map)%为表现该图象所给的特定色图例:调阅一幅世界著名数值计算专家的图片loadgatlin.mat%在DEMOS下的一组图象数据image(X)colormap(map)axisequalaxis('off')许钢2019/8/3Matlab语言及其在电子信息工程中的应用19第五讲MATLAB的图形功能*五、色彩一个色彩用一个三元数组表示[R,G,B],R、G、B表示三原色红、绿、蓝,在[0,1]之间取值,可以调制出许多种颜色。红绿蓝调和色100红010绿001蓝000黑111白110黄011青10.620.40纯铜色0.4910.83宝石蓝许钢2019/8/3Matlab语言及其在电子信息工程中的应用20第五讲MATLAB的图形功能*五、色彩例:用不同的颜色画图Cm=[1,0,0;0,1,0;0,0,1];%指定红、蓝、绿三原色Z=peaks(50);%提取待画的函数值mesh(Z)%画矩阵的网线图%观察所得图形colormap(Cm)%根据Cm色图配置当前图形%观察所得图形Cm=[0.5,0.5,0.5;0,1,0;0,0,1];colormap(Cm)%观察所得图形colorbar('horiz')%在当前的图形里放置水平的色轴许钢2019/8/3Matlab语言及其在电子信息工程中的应用21第五讲MATLAB的图形功能六、图形的控制1、打开一个新的窗口在命令窗口中输入命令figure打开一个新的窗口;figure(n)创建或打开第n个图形窗口,并使之成为活动窗口;2、在一个图形窗口中设置多个子窗口subplot(m,n,p)将当前窗口划分成m*n个子图,并选择第p个窗口为当前窗口。3、图形的叠加在同一窗口绘制多个图形时可以用holdon命令保留原图形使今后的图形叠加到上面去。许钢2019/8/3Matlab语言及其在电子信息工程中的应用22第五讲MATLAB的图形功能六、图形的控制例:曲线拟合x0=1.1:0.1:2.0;y0=[123,130,141,155,169,171,183,190,205,210];plot(x0,y0,'b*');%画出数据的散点图holdonA=[x0',ones(size(x0'))];B=y0';x=A\B;%求最小二乘拟合系数a=x(1);b=x(2);y=a*x0+b;plot(x0,y,'r');title('用最小二乘法拟合数据')string=['拟合直线y=',num2str(x(1)),'*x+',num2str(x(2))];%定义一个字符串text(1.3,200,string)%添加文本holdoff许钢2019/8/3Matlab语言及其在电子信息工程中的应用23第五讲MATLAB的图形功能(第五讲完)