您好,欢迎访问三七文档
第3章数据和函数的可视化2020/1/11ApplicationofMatlabLanguage2引言世界顶级的数值计算工具软件MATLAB具有极其强大的数据可视化功能,可制作具有出版质量图形。在前面的课程中,已经使用了数据可视化命令plot。详细介绍MATLAB这一部分的内容可以写一本书。我们只能介绍MATLAB数据可视化的基础,2-D数据可视化、3-D数据可视化初步。二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用直角坐标系、对数坐标、极坐标等形式。数据点可以用向量或矩阵形式给出,类型可以是实型或复型。2020/1/11ApplicationofMatlabLanguage3-5000500100015002000250030003500400000.20.40.60.81循环频率/HzRx()(a)Ship101002003004000.050.10.15X:78.13Y:0.1534X:39.06Y:0.06192-5000500100015002000250030003500400000.20.40.60.81循环频率/HzRx()(b)Ship2020040060000.050.1X:50.78Y:0.1101-5000500100015002000250030003500400000.20.40.60.81循环频率/HzRx()(c)Ship301002003004005000.050.10.15X:46.88Y:0.163900.10.20.30.40.50.60.70.80204060SIR/dB(a)源信号s100.10.20.30.40.50.60.70.80204060相似系数SIR/dB(b)源信号s2SD-MBDWP-MBDSD-MBDWP-MBD2020/1/11ApplicationofMatlabLanguage42020/1/11ApplicationofMatlabLanguage53.1二维曲线绘图的基本操作plot指令的基本调用格式(1)plot(x)x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。x为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线(2)plot(x,y)x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的曲线x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。(3)plot(x1,y1,x2,y2,…)绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。2020/1/11ApplicationofMatlabLanguage6例3.1使用直角坐标系在[0,2π]区间内,绘制曲线x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)0.52sin(2)xyex2020/1/11ApplicationofMatlabLanguage7例3.2使用参数方程绘制曲线绘制曲线t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).^2;plot(x,y)2cos(3),sinxtttytt2020/1/11ApplicationofMatlabLanguage8例3.3绘制复杂曲线用图形表示连续调制波形及其包络线。t=(0:pi/100:pi)’;%长度为101的时间采样列向量y1=sin(t)*[1,-1];%包络线函数值,是(101x2)的矩阵y2=sin(t).*sin(9*t);%长度为101的调制波列向量t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')axis([0,pi,-1,1])%控制轴的范围2020/1/11ApplicationofMatlabLanguage9多次叠绘、双纵坐标和多子图多次叠绘多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。holdon保持当前坐标轴和图形,并可以接受下一次绘制。holdoff取消当前坐标轴和图形保持,这种状态下,调用plot绘制完全新的图形,不保留以前的坐标格式、曲线。2020/1/11ApplicationofMatlabLanguage10例3.5重绘曲线重绘波形及其包络线。t=(0:pi/100:pi)';%长度为101的时间采样列向量y1=sin(t)*[1,-1];%包络线函数值,是(101x2)的矩阵y2=sin(t).*sin(9*t);%长度为101的调制波列向量t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,'r:')holdonplot(t,y2,'b')plot(t3,y3,'bo')axis([0,pi,-1,1])%控制轴的范围holdoff)9sin()sin(tty2020/1/11ApplicationofMatlabLanguage11例3.6利用hold绘制离散信号的波形。t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);stem(t,y,'g');holdon;stairs(t,y,'r');holdoff2020/1/11ApplicationofMatlabLanguage12双纵坐标:plotyy指令plotyy指令调用格式:plotyy(x1,y1,x2,y2)x1-y1曲线y轴在左,x2-y2曲线y轴在右。例3.7:x=0:0.01:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);plotyy(x,y1,x,y2);2020/1/11ApplicationofMatlabLanguage13多子图MATLAB允许在同一图形窗口布置几幅独立的子图。具体指令:subplot(m,n,k)使(m×n)幅子图中第k个子图成为当前图subplot(‘postion’,[left,bottom,width,height])在指定的位置上开辟子图,并成为当前图说明:subplot(m,n,k)的含义:图形窗口包含(m×n)个子图,k为要指定的当前子图的编号。其编号原则:左上方为第1子图,然后向右向下依次排序。该指令按缺省值分割子图区域。subplot(‘postion’,[left,bottom,width,height])用于手工指定子图位置,指定位置的四元组采用归一化的标称单位,即认为整个图形窗口绘图区域的高、宽的取值范围都是[0,1],而左下角为(0,0)坐标。产生的子图彼此独立。所有的绘图指令均可以在子图中使用。2020/1/11ApplicationofMatlabLanguage14例3.8演示subplot指令对图形窗的分割t=(pi*(0:1000)/1000)';y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis([0,pi,-1,1])subplot(2,2,2),plot(t,y2);axis([0,pi,-1,1])subplot('position',[0.2,0.05,0.6,0.45])plot(t,y12,'b-',t,[y1,-y1],'r:');2020/1/11ApplicationofMatlabLanguage15绘制图形的辅助操作曲线线形控制符曲线颜色控制符符号-:-.--含义实线虚线点划线双划线符号bgrcmykw含义兰绿红青品红黄黑白2020/1/11ApplicationofMatlabLanguage16曲线的色彩、线型和数据点形曲线的线形控制符、颜色控制符、数据点形控制符可以组合使用;其先后次序不影响绘图结果;也可以单独使用。2020/1/11ApplicationofMatlabLanguage17例3.9绘制图形的辅助操作SpecifyLinepropertiest=(0:15)*2*pi/15;y=sin(t);subplot(3,2,1),plot(t,y);title('Linsstyleisdefault')subplot(3,2,2),plot(t,y,'o');title('Linsstyleiso')subplot(3,2,3),plot(t,y,'k:');title('Linsstyleisk:')subplot(3,2,4),plot(t,y,'k:*');title('Linsstyleisk:*')subplot(3,2,5),plot(t,y,'m-d');title('Linsstyleism-d')subplot(3,2,6),plot(t,y,'r-p');title('Linsstyleisr-p')2020/1/11ApplicationofMatlabLanguage182020/1/11ApplicationofMatlabLanguage19坐标、刻度和分格线控制2020/1/11ApplicationofMatlabLanguage20例3.10坐标控制绘制椭圆,长轴为3.25,短轴为1.15t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);%y为长轴,x为短轴subplot(2,2,1);plot(x,y);axisofftitle('axisoff');subplot(2,2,2);plot(x,y);axisimage;title('axisimage');subplot(2,2,3);plot(x,y);axisequal;title('axisEqual');subplot(2,2,4);plot(x,y);axissquare;title('axisSquare');2020/1/11ApplicationofMatlabLanguage21axisoff-101-202axisimage-4-2024-202axisEqual-202-4-2024axisSquare2020/1/11ApplicationofMatlabLanguage22刻度、分格线和坐标框分格线与grid指令gridon画出分格线gridoff不画分格线MATLAB的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。坐标框boxon控制加边框线boxoff控制不加边框线刻度设置指令及格式:set(gca,‘xtick’,xs,‘ytick’,ys)xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。2020/1/11ApplicationofMatlabLanguage23例3.11绘制y=1-exp(-0.3*t).*cos(0.7*t)t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);tt=t(find(abs(y-1)0.05));ts=max(tt);plot(t,y,'r-');gridon;axis([0,6*pi,0.6,max(y)]);title('y=1-exp(-\alpha*t)*cos(\omega*t)');holdon;plot(ts,0.95,'bo');holdoff;set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)]);gridon;2020/1/11ApplicationofMatlabLanguage2
本文标题:Matlab绘图.
链接地址:https://www.777doc.com/doc-2887773 .html