10.50-0.51050-5-10-10-55010图 6.4-12
【例6.4.1.10-2】指令plotmatrix有两种基本调用方式:(1)对于数据矩阵(p?n)维的X和(p?m)维的Y,调用格式plotmatrix(X,Y)将画出一个分割成(m?n)个子散点图。其中第(i,j)个子散点图是根据Y第i列和X第j列数据画出的。(2)对于数据矩阵(p?n)维的X,调用格式plotmatrix(X)将画出分割成(n?n)个子块的图。该图的对角块,画出的是X每列的数据的频数直方图;而其他子块是相应列构成的散点图。
randn('seed',1111),X=randn(100,2);Y=randn(100,2); subplot(1,3,1),plotmatrix(X) subplot(1,3,2),plotmatrix(X,X) subplot(1,3,3),plotmatrix(X,Y) X 1 3210-1-23210-1-2-505-505X 1 X 2 3210-1-2321X 2 0-1-2-505-505-5-505-5050Y 2 X 1 X 2 3210-1-25Y 1 X 1 X 2 图 6.4-13
6.4.1.11 不规则数据的网线图和曲面图
【例6.4.1.11-1】用三角网线、曲面图表现函数z?rand('seed',22),X=6*pi*(rand(20,10)-0.5);Y=6*pi*(rand(20,10)-0.5); R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R; tri=delaunay(X,Y);
subplot(1,2,1),trimesh(tri,X,Y,Z) subplot(1,2,2),trisurf(tri,X,Y,Z) colormap(jet);brighten(0.5)
sinR,R?x2?y2。 R 21
图 6.4-14
6.4.1.12 泛函绘图指令fplot
【例6.4.1.12-1】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{隶书}等分采样绘图') ???????·§??·???ù??110.80.60.40.20-0.2-0.4-0.6-0.8-1-10120.80.60.40.20-0.2-0.4-0.6-0.8-1-1012 图6.4-15
6.4.2 四维表现
6.4.2.1 用色彩表现函数的特征
【例6.4.2.1-1】用色图阵表现函数的不同特征。演示:当三维网线图、曲面图的第四个输入宗量取一些特殊矩阵时,色彩就能表现或加强函数的某特征,如梯度、曲率、方向导数等。
x=3*pi*(-1:1/15:1);y=x;[X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;
[dzdx,dzdy]=gradient(Z);dzdr=sqrt(dzdx.^2+dzdy.^2);
dz2=del2(Z); % <4> subplot(1,2,1),surf(X,Y,Z),title('No. 1 surf(X,Y,Z)') shading faceted,colorbar('horiz'),brighten(0.2)
22
subplot(1,2,2),surf(X,Y,Z,R),title('No. 2 surf(X,Y,Z,R)') shading faceted;colorbar('horiz')
图 6.4-16
clf;subplot(1,2,1),surf(X,Y,Z,dzdx)
shading faceted;brighten(0.1);colorbar('horiz') title('No. 3 surf(X,Y,Z,dzdx)') subplot(1,2,2),surf(X,Y,Z,dzdy) shading faceted;colorbar('horiz') title('No. 4 surf(X,Y,Z,dzdy)')
图 6.4-17
subplot(1,2,1),surf(X,Y,Z,abs(dzdr))
shading faceted;brighten(0.6);colorbar('horiz') title('No. 5 surf(X,Y,Z,abs(dzdr))')
subplot(1,2,2),surf(X,Y,Z,abs(dz2)) shading faceted;colorbar('horiz')
title('No. 6 surf(X,Y,Z,abs(dz2))')
%<17>
23
图 6.4-18
6.4.2.2 切片图和切片等位线图
【例6.4.2.2-1】利用slice和contourslice 表现MATLAB提供的无限大水体中水下射流速度数据flow 。flow是一组定义在三维空间上的函数数据。本例将动用切片、视角、色彩和透明度等综合手段观察定义在三维空间上的函数。
%
clf;[X,Y,Z,V]=flow;
x1=min(min(min(X)));x2=max(max(max(X))); y1=min(min(min(Y)));y2=max(max(max(Y))); z1=min(min(min(Z)));z2=max(max(max(Z))); sx=linspace(x1+1.2,x2,5); sy=0; sz=0;
slice(X,Y,Z,V,sx,sy,sz);
view([-33,36]);shading interp; colormap jet; %
alpha('color')
alphamap('rampdown') alphamap('increase',.1) colorbar axis off
24
图 6.4-19
%
clf;v1=min(min(min(V)));v2=max(max(max(V))); cv=linspace(v1,v2,15);
contourslice(X,Y,Z,V,sx,sy,sz,cv);view([-12,30]) colormap jet;colorbar;box on 23210-1-2-3420-2-402468100-2-4-6-8图 6.4-20 6.4.3 动态图形 6.4.3.1 彗星状轨迹图
【例 6.4.3.1-1】简单二维示例。(请读者自己在指令窗中运行以下指令。)
shg;n=10;t=n*pi*(0:0.0005:1);x=sin(t);y=cos(t);
25