matlab 第六章 数据和函数的可视化Word格式.docx
- 文档编号:22535400
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:60
- 大小:2.39MB
matlab 第六章 数据和函数的可视化Word格式.docx
《matlab 第六章 数据和函数的可视化Word格式.docx》由会员分享,可在线阅读,更多相关《matlab 第六章 数据和函数的可视化Word格式.docx(60页珍藏版)》请在冰豆网上搜索。
为此,本章专设第6.5.4节,详细阐述透明度处理的机理和指令协调细节。
●在MATLAB升级过程中,专门用于图像数据存储的unit8,unit16数据类型进一步完善。
对此,本章专辟第6.6.3节说明这种数据类型的特点和使用注意事项。
●本章还对升级后的图形窗界面的编辑功能进行了新的全面阐述(见第6.7节)。
引导
离散数据和离散函数的可视化
【例6.1.1-1】用图形表示离散函数
。
n=0:
12;
y=1./abs(n-6);
plot(n,y,'
r*'
'
MarkerSize'
20)
gridon
Warning:
Dividebyzero.
图6.1-1
连续函数的可视化
【例6.1.2-1】用图形表示连续调制波形
t1=(0:
11)/11*pi;
%<
1>
y1=sin(t1).*sin(9*t1);
t2=(0:
100)/100*pi;
%<
3>
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,'
子图
(2)'
subplot(2,2,3),plot(t1,y1,t1,y1,'
axis([0,pi,-1,1]),title('
子图(3)'
subplot(2,2,4),plot(t2,y2)
子图(4)'
)
图6.1-2
可视化的一般步骤
绘制二维图形的一般步骤
绘制三维图形的一般步骤
二维曲线绘图的基本操作
plot的基本调用格式
【例6.2.1-1】简单例题,比较方便的试验指令。
t=(0:
pi/50:
2*pi)'
;
k=0.4:
0.1:
1;
Y=cos(t)*k;
plot(t,Y)
图6.2-1
【例6.2.1-2】用图形表示连续调制波形
及其包络线。
pi/100:
pi)'
%<
y1=sin(t)*[1,-1];
2>
y2=sin(t).*sin(9*t);
%<
t3=pi*(0:
9)/9;
%<
4>
y3=sin(t3).*sin(9*t3);
plot(t,y1,'
r:
'
t,y2,'
b'
t3,y3,'
bo'
)%<
5>
axis([0,pi,-1,1])%<
6>
图6.2-2
【例6.2.1-3】用复数矩阵形式画Lissajous图形。
(在模拟信号时代,Lissajous图形常用来测量信号的频率。
t=linspace(0,2*pi,80)'
%<
X=[cos(t),cos(2*t),cos(3*t)]+i*sin(t)*[1,1,1];
%(80x3)的复数矩阵
plot(X)%<
axissquare%<
legend('
1'
2'
3'
图6.2-3
【例6.2.1-4】采用模型
画一组椭圆。
th=[0:
2*pi]'
a=[0.5:
.5:
4.5];
X=cos(th)*a;
Y=sin(th)*sqrt(25-a.^2);
plot(X,Y),axis('
equal'
),xlabel('
x'
),ylabel('
y'
title('
AsetofEllipses'
图6.2-4
曲线的色彩、线型和数据点形
色彩和线型
数据点形
【例6.2.2.2-1】用图形演示平面上一个方块四个顶点在仿射投影(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];
dx=0.5;
dy=1;
T=[1,0,dx;
0,1,dy;
0,0,1];
th=pi/6;
R=[cos(th),-sin(th),0;
sin(th),cos(th),0;
alpha=2;
beta=3;
S=[alpha,0,0;
0,beta,0;
E=eye(3,3);
%<
10>
TRS={E,T,R,S};
%<
11>
ss={'
r^'
rd'
rp'
rh'
};
%<
12>
tt={'
OriginalSquare'
Translation'
Rotation'
Scaling'
%<
13>
fori=1:
4
W=TRS{i}*Sq;
%
subplot(2,2,i)
fork=1:
plot(W(1,k),W(2,k),ss{k});
%<
19>
axis([-3,3,-1,5]),axisequal
holdon%<
21>
end
plot(W(1,:
),W(2,:
))%<
23>
gridon%
title(tt{i})%
holdoff%
end
图6.2-5
坐标、刻度和分格线控制
坐标控制
【例6.2.3.1-1】观察各种轴控制指令的影响。
演示采用长轴为3.25,短轴为1.15的椭圆。
注意:
采用多子图表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。
本书这样处理,是出于篇幅考虑。
读者欲想准确体会控制指令的影响,请在全图状态下进行观察。
(图6.2-6)
t=0:
2*pi/99:
2*pi;
x=1.15*cos(t);
y=3.25*sin(t);
%
subplot(2,3,1),plot(x,y),axisnormal,gridon,
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
ImageandFill'
subplot(2,3,6),plot(x,y),axistight,boxoff,title('
Tight'
图6.2-6
刻度、分格线和坐标框
【例6.2.3.2-1】通过绘制二阶系统阶跃响应,综合演示图形标识。
本例比较综合,涉及的指令较广。
请读者耐心读、实际做、再看例后说明,定会有匪浅收益。
(图6.2-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);
%<
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%<
\ity=1-e^{-\alphat}cos{\omegat}'
)%<
7>
text(13.5,1.2,'
\fontsize{12}{\alpha}=0.3'
)%<
8>
text(13.5,1.1,'
\fontsize{12}{\omega}=0.7'
9>
holdon;
plot(ts,0.95,'
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)];
14>
text(ts,0.85,cell_string)%<
15>
xlabel('
\fontsize{14}\bft\rightarrow'
16>
ylabel('
\fontsize{14}\bfy\rightarrow'
17>
图6.2-7
图形标识
简捷指令形式
精细指令形式
【例6.2.4.2-1】本例非常简单,专供试验标识用。
y=sin(t);
plot(t,y);
axis([0,2*pi,-1.2,1.2])
text(pi/2,1,'
\fontsize{16}\leftarrow\itsin(t)\fontname{隶书}极大值'
图6.2-8
多次叠绘、双纵坐标和多子图
多次叠绘
【例6.2.5.1-1】利用hold绘制离散信号通过零阶保持器后产生的波形。
t=2*pi*(0:
20)/20;
y=cos(t).*exp(-0.4*t);
stem(t,y,'
g'
);
stairs(t,y,'
r'
holdoff
图6.2-7
双纵坐标图
【例6.2.5.2-1】画出函数
和积分
在区间
上的曲线。
dx=0.1;
x=0:
dx:
4;
y=x.*sin(x);
s=cumtrapz(y)*dx;
%梯形法求累计积分
plotyy(x,y,x,s),text(0.5,0,'
\fontsize{14}\ity=xsinx'
sint='
{\fontsize{16}\int_{\fontsize{8}0}^{x}}'
text(2.5,3.5,['
\fontsize{14}\its='
sint,'
\fontsize{14}\itxsinxdx'
])
图6.2-10
【例6.2.5.2-2】受热压力容器的期望温度是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.2-11
多子图
【例6.2.5.3-1】演示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);
subplot('
position'
[0.2,0.05,0.6,0.45])%<
plot(t,y12,'
b-'
t,[y1,-y1],'
axis([0,pi,-1,1])
图6.2-12
交互式图形指令
ginput
gtext
legend
zoom
三维绘图的基本操作
三维线图指令plot3
【例6.3.1-1】简单例题。
0.02:
2)*pi;
x=sin(t);
y=cos(t);
z=cos(2*t);
plot3(x,y,z,'
x,y,z,'
bd'
),view([-82,58]),boxon,legend('
链'
宝石'
图6.3-1
三维网线图和曲面图
三维图形的数据准备
网线图、曲面图基本指令格式
【例6.3.2.2-1】用曲面图表现函数
clf,x=-4:
y=x;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
surf(X,Y,Z);
holdon,colormap(hot)
stem3(X,Y,Z,'
图6.3-2
透视、镂空和裁切
图形的透视
【例6.3.3.1-1】透视演示
[X0,Y0,Z0]=sphere(30);
X=2*X0;
Y=2*Y0;
Z=2*Z0;
surf(X0,Y0,Z0);
shadinginterp
holdon,mesh(X,Y,Z),colormap(hot),holdoff
hiddenoff
axisequal,axisoff
图6.3-3
图形的镂空
【例6.3.3.2-1】演示:
如何利用“非数”NaN,对图形进行剪切处理。
t=linspace(0,2*pi,100);
r=1-exp(-t/2).*cos(4*t);
[X,Y,Z]=cylinder(r,60);
ii=find(X<
0&
Y<
0);
Z(ii)=NaN;
colormap(spring),shadinginterp
light('
[-3,-1,3],'
style'
local'
material([0.5,0.4,0.3,10,0.3])
图6.3-4
【例6.3.3.2-2】演示:
如何利用“非数”NaN,对图形进行镂空处理。
P=peaks(30);
P(18:
20,9:
15)=NaN;
surfc(P);
colormap(summer)
[50,-10,5]),lightingflat
material([0.9,0.9,0.6,15,0.4])
图6.3-5
裁切
【例6.3.3.3-1】表现切面
clf,x=[-8:
0.05:
8];
ZZ=X.^2-Y.^2;
ii=find(abs(X)>
6|abs(Y)>
6);
ZZ(ii)=zeros(size(ii));
surf(X,Y,ZZ),shadinginterp;
colormap(copper)
[0,-15,1]);
lightingphong
material([0.8,0.8,0.5,10,0.5])
图6.3-6
特殊图形和高维可视化
特殊图形指令例示
面域图area
【例6.4.1.1-1】面域图指令area。
该指令的特点是:
在图上绘制多条曲线时,每条曲线(除第一条外)都是把“前”条曲线作基线,再取值绘制而成。
因此,该指令所画的图形,能醒目地反映各因素对最终结果的贡献份额。
(1)area的第一输入宗量是单调变化的自变量。
第二输入宗量是“各因素”的函数值矩阵,且每个“因素”的数据取列向量形式排放。
第三输入宗量是绘图的基准线值,只能取标量。
当基准值为0(即以x轴为基准线)时,第三输入宗量可以缺省。
(2)本例第<
条指令书写格式x'
Y'
,强调沿列方向画各条曲线的事实。
x=-2:
2
Y=[3,5,2,4,1;
3,4,5,2,1;
5,4,3,2,5]
Cum_Sum=cumsum(Y)
area(x'
Y'
0)%<
因素A'
因素B'
因素C'
),gridon,colormap(spring)
x=
-2-1012
Y=
35241
34521
54325
Cum_Sum=
69762
11131087
图6.4-1
各种直方图bar,barh,bar3,bar3h
【例6.4.1.2-1】二维直方图有两种图型:
垂直直方图和水平直方图。
而每种图型又有两种表现模式:
累计式:
分组式。
本例选其两种加以表现。
2;
5,4,3,2,5];
subplot(1,2,1),bar(x'
stacked'
),ylabel('
\Sigmay'
),colormap(cool)
subplot(1,2,2),barh(x'
grouped'
图6.4-2
【例6.4.1.2-2】用三维直方图表现上例数据。
subplot(1,2,1),bar3(x'
1)
因素ABC'
),zlabel('
subplot(1,2,2),bar3h(x'
图6.4-3
饼图pie,pie3
【例6.4.1.3-1】饼图指令pie,pie3用来表示各元素占总和的百分数。
该指令第二输入宗量为与第一宗量同长的0-1向量,1使对应扇块突出。
a=[1,1.6,1.2,0.8,2.1];
subplot(1,2,1),pie(a,[10100]),legend({'
4'
5'
})
subplot(1,2,2),pie3(a,a==min(a)),colormap(cool)
图6.4-4
填色图fill,fill3
【例6.4.1.4-1】读者试验本例时,注意三点:
MATLAB画任意多边形的一种方法;
保证绘图数据首尾重合,使勾画多边形封闭;
使用图柄对图形的属性进行精细设置。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 第六章 数据和函数的可视化 第六 数据 函数 可视化