第6章MATLAB计算结果可视化.docx
- 文档编号:30522884
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:15
- 大小:150.48KB
第6章MATLAB计算结果可视化.docx
《第6章MATLAB计算结果可视化.docx》由会员分享,可在线阅读,更多相关《第6章MATLAB计算结果可视化.docx(15页珍藏版)》请在冰豆网上搜索。
第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('链','宝石')
图6-11宝石项链
6.2.10网线图、曲面图基本指令格式
【例6-12】用曲面图表现函数
。
clf,x=-4:
4;y=x;[X,Y]=meshgrid(x,y);%生成x-y坐标“格点”矩阵
Z=X.^2+Y.^2;%计算格点上的函数值
surf(X,Y,Z);holdon,colormap(hot)
stem3(X,Y,Z,'bo')%用来表现在格点上计算函数值
图6-12曲面图和格点
6.2.11各种直方图bar,barh,bar3,bar3h
【例6-13】二维直方图有两种图型:
垂直直方图和水平直方图。
而每种图型又有两种表现模式:
累计式:
分组式。
本例选其两种加以表现。
x=-2:
2;%注意:
自变量要单调变化
Y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5];%各因素的相对贡献份额
subplot(1,2,1),bar(x',Y','stacked')%“累计式”直方图
xlabel('x'),ylabel('\Sigmay'),colormap(cool)%控制直方图的用色
legend('因素A','因素B','因素C')
subplot(1,2,2),barh(x',Y','grouped')%“分组式”水平直方图
xlabel('y'),ylabel('x')
图6-13二维直方图
6.2.12饼图pie,pie3
【例6-14】饼图指令pie,pie3用来表示各元素占总和的百分数。
该指令第二输入宗量为与第一宗量同长的0-1向量,1使对应扇块突出。
a=[1,1.6,1.2,0.8,2.1];
subplot(1,2,1),pie(a,[10100]),legend({'1','2','3','4','5'})
subplot(1,2,2),pie3(a,a==min(a)),colormap(cool)
图6-14饼形统计图
6.3图形窗的图形编辑功能
【例6-15】运行以下指令
clf;shg,t=(pi*(0:
1000)/1000)';y1=sin(t);y12=sin(t).*sin(10*t);
plot(t,y12,'b-',t,[y1,-y1],'r:
'),axis([0,pi,-1,1])
图6-15MATLAB5.3版图形窗
【例6-16】编辑图形
图6-16经交互编辑后的图形
6.4函数绘图的简捷指令
【例6-17】绘制
和它的积分
在
间的图形。
symsttao;
y=2/3*exp(-t/2)*cos(sqrt(3)/2*t);%定义符号函数
s=subs(int(y,t,0,tao),tao,t);%获得积分函数
subplot(1,2,1),ezplot(y,[0,4*pi]);grid%一元函数简捷绘图指令
subplot(1,2,2),ezplot(s,[0,4*pi]);grid
title('s=\inty(t)dt')%重写右子图图名
图6-17ezplot使用示例
【例6-18】画出
所表示的三维曲面。
的取值范围是
。
解:
clear;%清内存
x=-8:
0.5:
8;%定义自变量x的一维刻度向量
y=x';%定义自变量y的一维刻度向量,“’”为矩阵转置
X=ones(size(y))*x;%计算自变量平面上取值点
坐标的二维数组
Y=y*ones(size(x));%计算自变量平面上取值点
坐标的二维数组
R=sqrt(X.^2+Y.^2)+eps;%计算中间变量
Z=sin(R)./R;%计算与自变量二维数组相应的函数值
mesh(Z);%绘制三维网格图
colormap(hot)%指定网格图用hot色图绘制
图6-18三维网线图
●常用绘图函数
plot
绘制二维图形
viewmtx
定义观察点的矩阵
Plot3
绘制三维图形
contour
等高线图
fplot
绘图函数
Contour3
三维等高线图
subplot
将当前图分为若干子图
meshgrid
产生网格
semilogx,semilogy
对数绘图
Surf
曲面图
view
观察点的位置或角度
Mesh
网格曲面图
waterfall
曲面图
Figure
设为当前图或创建图
surfl,surfc,surfnorm
带有特殊光照,等高线和法线的曲面图
surface
曲面对象
fill,fill3
填充多边形
Line
线对象
colormap
读或设置颜色表
Text
文本对象
newplot
设定下一个图的属性
whitebg
背景颜色
slice
三个变量的绘图函数
Clf
清除图形
hold
保留当前图形
Axis
坐标轴刻度
grid
显示或隐藏网格线
comet,comet3
动态绘制二维、三维图形
polar
在极坐标中绘图
semilogx,semilogy,loglog
对数绘图
习题
1.绘制函数
在
时的曲线。
2.绘制函数y=sin(t)的曲线。
3.编写程序作图:
函数y=2*sin(3*x)+cos(x),区间:
0≤x≤4π,-5≤y≤5。
(参考:
fplot)
4.利用peaks函数产生矩阵x、y、z,在一个图形窗中作出曲面图和等值线图(曲面图位于界面上部,等值线图位于界面下部)。
(参考:
peaks,subplot,surf,contour)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 计算 结果 可视化