第6章MATLAB计算结果可视化.docx
- 文档编号:2839874
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:14
- 大小:150.54KB
第6章MATLAB计算结果可视化.docx
《第6章MATLAB计算结果可视化.docx》由会员分享,可在线阅读,更多相关《第6章MATLAB计算结果可视化.docx(14页珍藏版)》请在冰豆网上搜索。
第6章MATLAB计算结果可视化
第六章MATLAB计算结果可视化
6.1连续函数和离散函数的可视化
【例6-1】用图形表示离散函数
。
n=0:
12;%产生一组自变量数据
y=1./abs(n-6);%计算相应点的函数值
plot(n,y,'r*','MarkerSize',20)%用红花标出数据点
gridon%画坐标方格
Warning:
Dividebyzero.
图6-1离散函数的可视化
【例6-2】用图形表示连续调制波形
。
t1=(0:
11)/11*pi;
y1=sin(t1).*sin(9*t1);
t2=(0:
100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图
(1)')
subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图
(2)')
subplot(2,2,3),plot(t1,y1,t1,y1,'r.')
axis([0,pi,-1,1]),title('子图(3)')
subplot(2,2,4),plot(t2,y2)
axis([0,pi,-1,1]),title('子图(4)')
图6-2连续函数的图形表现方法
6.2二维曲线绘图的基本操作
6.2.1plot的基本调用格式
【例6-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])%控制轴的范围
图6-3
6.2.2泛函绘图指令fplot
【例6-4】fplot与一般绘图指令的绘图效果比较。
[x,y]=fplot('cos(tan(pi*x))',[-0.4,1.4],0.2e-3);n=length(x);
subplot(1,2,1),plot(x,y)
title('\fontsize{20}\fontname{隶书}泛函绘图指令效果')
t=(-0.4:
1.8/n:
1.4)';
subplot(1,2,2),plot(t,cos(tan(pi*t)))
title('\fontsize{20}\fontname{隶书}等分采样绘图')
图6-4右图曲线中底部有明显绘图缺陷
6.2.3曲线的色彩、线型和数据点形
【例6-5】用图形演示平面上一个方块四个顶点在仿射投影(AffineProjection)下的位置、形状变化。
%平面上的四个点和它们构成的方块
p1=[-0.5,0,1]';p2=[-0.5,1,1]';p3=[0.5,1,1]';p4=[0.5,0,1]';
Sq=[p1,p2,p3,p4,p1];
%平移投影:
沿x轴移动0.5,沿y轴移动1。
dx=0.5;dy=1;T=[1,0,dx;0,1,dy;0,0,1];
%旋转投影:
逆时针旋转30度。
th=pi/6;R=[cos(th),-sin(th),0;sin(th),cos(th),0;0,0,1];
%刻度投影:
x方向放大到2倍,y方向放大到3倍。
alpha=2;beta=3;S=[alpha,0,0;0,beta,0;0,0,1];
E=eye(3,3);%为编程方便,设计一个单位阵。
在它投影下,任何形状都不变。
TRS={E,T,R,S};%用元胞数组存放四个变换矩阵
ss={'r^','rd','rp','rh'};%用元胞数组存放数据点形设置值
tt={'OriginalSquare','Translation','Rotation','Scaling'};
%用元胞数组存放四张子图的图名
fori=1:
4
W=TRS{i}*Sq;%进行仿射变换
subplot(2,2,i)
fork=1:
4
plot(W(1,k),W(2,k),ss{k});%用不同点形标志四个顶点
axis([-3,3,-1,5]),axisequal
holdon%使以后图形画在当前子图上
end
plot(W(1,:
),W(2,:
))%连接四个顶点使图形封闭
gridon%画过坐标格线
title(tt{i})%给子图题写图名
holdoff%使以后图形不再画在当前子图上
end
图6-5仿射投影演示
6.2.4坐标控制
【例6-6】观察各种轴控制指令的影响。
演示采用长轴为3.25,短轴为1.15的椭圆。
注意:
采用多子图表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。
t=0:
2*pi/99:
2*pi;
x=1.15*cos(t);y=3.25*sin(t);%y为长轴,x为短轴
subplot(2,3,1),plot(x,y),axisnormal,gridon,
title('NormalandGridon')
subplot(2,3,2),plot(x,y),axisequal,gridon,title('Equal')
subplot(2,3,3),plot(x,y),axissquare,gridon,title('Square')
subplot(2,3,4),plot(x,y),axisimage,boxoff,title('ImageandBoxoff')
subplot(2,3,5),plot(x,y),axisimagefill,boxoff
title('ImageandFill')
subplot(2,3,6),plot(x,y),axistight,boxoff,title('Tight')
图6-6各种轴控制指令的不同影响
6.2.5刻度、分格线和坐标框
【例6-7】绘制二阶系统阶跃响应。
clf;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);
subplot(1,2,1),plot(t,y,'r-','LineWidth',3),gridon
axis([0,6*pi,0.6,max(y)])
title('y=1–exp(-alpha*t)*cos(omega*t)')
text(11,1.25,'alpha=0.3');text(11,1.15,'omega=0.7')
holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff
text(ts+1.5,0.95,['ts='num2str(ts)])
xlabel('t-->'),ylabel('y-->')
subplot(1,2,2),plot(t,y,'r-','LineWidth',3)
axis([-inf,6*pi,0.6,inf])
set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])
gridon
title('\ity=1-e^{-\alphat}cos{\omegat}')
text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')
text(13.5,1.1,'\fontsize{12}{\omega}=0.7')
holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff
cell_string{1}='\fontsize{12}\uparrow';
cell_string{2}='\fontsize{16}\fontname{隶书}镇定时间';
cell_string{3}='\fontsize{6}';
cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];
text(ts,0.85,cell_string)
xlabel('\fontsize{14}\bft\rightarrow')
ylabel('\fontsize{14}\bfy\rightarrow')
图6-7二阶阶跃响应图用MATLAB4.x和5.x版标识时的差别
6.2.6多次叠绘
【例6-8】利用hold绘制离散信号通过零阶保持器后产生的波形。
t=2*pi*(0:
20)/20;y=cos(t).*exp(-0.4*t);
stem(t,y,'g');holdon;stairs(t,y,'r');holdoff
图6-8离散信号的重构
6.2.7双纵坐标图
【例6-9】受热压力容器的期望温度是120度,期望压力是0.25Mpa。
在同一张图上画出它们的阶跃响应曲线。
S1=tf([11],[1321]);%温度的传递函数对象模型。
S2=tf(1,[111]);%压力的传递函数对象模型。
[Y1,T1]=step(S1);%计算阶跃响应
[Y2,T2]=step(S2);%计算阶跃响应
plotyy(T1,120*Y1,T2,0.25*Y2,'stairs','plot')
图6-9双纵坐标图演示
6.2.8多子图
【例6-10】演示subplot指令对图形窗的分割。
clf;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:
');axis([0,pi,-1,1])
图6-10多子图的布置
6.2.9三维线图指令plot3
【例6-11】简单例题。
t=(0:
0.02:
2)*pi;x=sin(t);y=cos(t);z=cos(2*t);
plot3(x,y,z,'b-',x,y,z,'bd'),view([-82,58]),boxon,legend(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 计算 结果 可视化