1、通信系统仿真第三讲: Matlab的绘图,Matlab绘图: 功能函数- 二维图形- 图形修饰与控制- 三维图形- 特殊图形绘制,第三讲提纲,Matlab绘图,二维图形- plot 二维曲线绘图函数基本形式plot(x,y,s) x,y 是相同类型的等长向量 s 可选,用于控制图形属性原理: 点线输入: 点坐标向量输出: 插值曲线,Matlab绘图 (续),采样点对绘图的影响- 曲线实例:y=sin(x), 0 x=0:0.5:2*pi; y=sin(x); plot(x,y,.),提供曲线的插值点稀疏,Matlab绘图 (续),采样点对绘图的影响(续)- 曲线实例:y=sin(x), 0 x
2、=0:0.5:2*pi; y=sin(x); plot(x,y,.-),插值曲线 欠光滑,Matlab绘图 (续),采样点对绘图的影响(续)- 曲线实例:y=sin(x), 0 x=0:0.1:2*pi; y=sin(x); plot(x,y,.-),提供曲线的插值点稠密,Matlab绘图 (续),采样点对绘图的影响(续)- 曲线实例:y=sin(x), 0 x=0:0.1:2*pi; y=sin(x); plot(x,y,.-),插值曲线的变的光滑了,Matlab绘图 (续),采样点对绘图的影响(续)- 曲线实例:y=sin(x), 0 x=0:0.1:2*pi; y=sin(x); plo
3、t(x,y),Matlab绘图 (续),图形颜色、标记和线形参数表,Matlab绘图 (续),Plot 使用实例: 因变量缺省 x=3 5 7 6 12 24 15 33 6 9 7 2; plot(x) % 绘制以序号为横坐标,元素值,Matlab绘图 (续),Plot 使用实例: 多条曲线 x=linspace(0,7); y1=sin(2*x); y2=sin(x.2); y3=(sin(x).2; plot(x, y1, r+-, x, y2, k*:,x,y3,b-),Matlab绘图 (续),函数 Plot 常用的使用格式- plot(x): 缺省自变量- plot(x,y): 单
4、条曲线 - plot(x1,y1,x2,y2,): 多条曲线- plot(x,y,s): 带属性修饰的曲线- s : 属性开关描述自符串变量,Matlab绘图 (续),图形修饰/控制函数的使用cleart=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3; 0.7;s=sin(t);cos(t);,Matlab绘图 (续),图形修饰/控制函数的使用(续)title(正弦和余弦曲线); text(x, y, s);gtext(s) ; ginput(n) legend(正弦,余弦)whitebg(w)
5、/ whitebg(.7 .7 .7),图形修饰/控制函数的使用(续)xlabel(时间) ylabel(正弦zoom xon(yon /on) axis square/ axis(xmin xmax ymin ymax),Matlab绘图 (续),Matlab绘图 (续),图形修饰/控制函数的使用(续),Matlab绘图 (续),图形的修饰与控制函数title 给图形加标题xlabel 给x轴加标注ylabel 给y轴加标注text 在图形指定的任意位置加标注gtext 利用鼠标将标注加到图形任意位置grid on/off 打开/关闭坐标网格线,Matlab绘图 (续),图形的修饰与控制函数
6、whitebg 改变图形的背景颜色ginput 在曲线上读取坐标位置zoom 对二维图形放大axis 控制坐标轴刻度legend 添加图例,Matlab绘图 (续),【例】在屏幕上画圆。t=0:0.1:360;t=t*pi/180;plot(cos(t),sin(t)axis equal;axis off;,Matlab绘图 (续),【例】在刚才的屏幕上继续画一个椭圆。t=0:0.1:360;t=t*pi/180;plot(cos(t),0.5*sin(t)axis equal;axis off;,Matlab绘图 (续),图形保持函数 hold功能: 实现异步绘图的迭加对比cleart=0:
7、pi/10:2*pi;x=linspace(0,8,50);y1=sin(t);y2=cos(t);y3= sin(x)+3*x;,plot(t,y1,r,t,y2,g); hold on; %后续图形叠加显示Plot(x,y3,y);,Matlab绘图 (续),图形分割函数 subplot功能: 实现多个图形窗口cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3=cos(t+pi/2);y4=cos(t+pi);,%将图形窗口分割成两行两列,图形画在第1行第1列的窗口 subplot(2,2,1); plot(t,y1); %图形画在第1行第2列 subpl
8、ot(2,2,2); plot(t,y2);,Matlab绘图 (续),图形分割函数 subplot (续)%图形画在第2行第1列subplot(2,2,3); plot(t,y3);%图形画在第2行第2列subplot(2,2,2); plot(t,y4);,均匀传输线上的阻抗曲线(实部和虚部)x=0:.01:1;Zc=50;Zl=70;Z=Zc*(Zl+j*Zc*tan(x*2*pi)./(Zc+j*Zl*tan(2*pi*x);whitebg(w);,Matlab绘图 (续),均匀传输线上的阻抗曲线(实部和虚部)subplot(211);plot(x,real(Z),b);ylabel(
9、R(Ohm);title(Impedance of Transmission Line)subplot(2112);plot(x,img(Z),b,01,0 0,k);ylabel(X(Ohm);xlabel(x (in wavelength),Matlab绘图 (续),Matlab绘图 (续),3D曲线绘图函数 plot3功能: 实现三维曲线绘图使用的一般格式 plot3(x1, y1, z1, s1, x2, y2, z2, s2)cleart=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)grid on,Matlab绘图 (续),其它绘图方式- 命令格式p
10、lot: 2D曲线绘图plot3: 3D曲线绘图loglog:对数坐标绘图semilogx: 横对数坐标图semilogy: 纵对数坐标图plotyy: 双纵坐标图,Matlab绘图 (续),【例】绘制双坐标图x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); AX,H1,H2 = plotyy(x,y1,x,y2,plot); set(get(AX(1),Ylabel),String,Left Y-axis) set(get(AX(2),Ylabel),String,Right Y-ax
11、is) xlabel(Zero to 20 musec.) title(Labeling plotyy),Matlab绘图 (续),- 虚数/复数数据绘图plot(Z) 等价于 plot(real(Z),imag(Z)t=0:900; A=1000; a=0.005; b=0.005; z1=A*exp(-a*t);z2=sin(b*t); haxes,hline1,hline2=plotyy(t,z1,t,z2,semilogy,plot); set(get(haxes(1),Ylabel),String,Semilogy Plot) set(get(haxes(2),Ylabel),Str
12、ing,Linear Plot),Matlab绘图 (续),特殊图形绘图- 条图/面积图bar/bar3: 2D/3D纵向条图barh/bar3h: 2D/3D横向条图Y = 5 2 1; 8 7 3; 9 8 6; 5 5 5; 4 3 2;bar(Y)或者bar3(Y),Matlab绘图 (续), area(Y),Matlab绘图 (续),- 饼状图pie/pie3: 2D/3D饼状图X = 19.3 22.1 51.6;34.2 70.3 82.4;61.4 82.9 90.8;50.5 54.9 59.1;29.4 36.3 47.0;x=sum(X);explode = zeros(
13、size(x);c,offset = max(x); explode(offset) = 1; pie(x,explode),Matlab绘图 (续),- 离散数据图stem/stem3: 2D/3D离散数据图stairs: 阶梯数据图alpha=.02; beta=.5; t=0:4:200;y=exp(-alpha*t).*cos(beta*t);stem(t,y)或者stem(t,y,-sr,fill),Matlab绘图 (续),alpha = 0.01;beta = 0.5;t = 0:10;f = exp(-alpha*t).*sin(beta*t); stairs(t,f)hold onplot(t,f,-*)hold off,