欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab三维feather,matlab高维图形,别地方抄来的 -凯发k8官方网

发布时间:2024/10/8 循环神经网络 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 matlab三维feather,matlab高维图形,别地方抄来的 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

不知道能不能用上,先留着。

7.4 特殊图形和高维可视化

7.4.1 特殊图形指令例示

7.4.1.1 面域图area

【 * 例 7.4.1 .1-1 】面域图指令 area

。该指令的特点是:在图上绘制多条曲线时,每条曲线(除第一条外)都是把“前”条曲线作基线,再取值绘制而成。因此,该指令所画的图形,能醒目地反映各因素对最终结果的贡献份额。

注意:( 1 ) area

的第一输入宗量是单调变化的自变量。第二输入宗量是“各因素”的函数值矩阵,且每个“因素”的数据取列向量形式排放。第三输入宗量是绘图的基准线值,只能取标量。当基准值为

0 (即以 x 轴为基准线)时,第三输入宗量可以缺省。( 2 )本例第

<4> 条指令书写格式 x' , y' ,

强调沿列方向画各条曲线的事实。

clf;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) %<4>

legend(' 因素 a',' 因素 b',' 因素 c'),grid on,colormap(spring)

x =

-2 -1 0 1 2

y =

3 5 2 4 1

3 4 5 2 1

5 4 3 2 5

cum_sum =

3 5 2 4 1

6 9 7 6 2

11 13 10 8 7

图 7.4.1 .1-1 面域图表现各分量的贡献

7.4.1.2 各种直方图bar, barh, bar3, bar3h

【 * 例 7.4.1 .2-1

】二维直方图有两种图型:垂直直方图和水平直方图。而每种图型又有两种表现模式:累计式:分组式。本例选其两种加以表现。

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('\sigma y'),colormap(cool)% 控制直方图的用色

legend(' 因素 a',' 因素 b',' 因素 c')

subplot(1,2,2),barh(x',y','grouped') % “分组式”水平直方图

xlabel('y'),ylabel('x')

图 7.4.1 .2-1 二维直方图

clf;x=-2:2; % 注意:自变量要单调变化

y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5]; % 各因素的相对贡献份额

subplot(1,2,1),bar3(x',y',1) % “队列式”直方图

xlabel(' 因素 abc'),ylabel('x'),zlabel('y')

colormap(summer) % 控制直方图的用色

subplot(1,2,2),bar3h(x',y','grouped') % “分组式”水平直方图

ylabel('y'),zlabel('x')

图 7.4.1 .2-2 三维直方图

7.4.1.3 饼图pie, pie3

【 * 例 7.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,[1 0 1 0

0]),legend({'1','2','3','4','5'})

subplot(1,2,2),pie3(a,a==min(a)),colormap(cool)

图 7.4.1 .3-1 饼形统计图

7.4.1.4 填色图fill,fill3

【 * 例 7.4.1 .4-1 】读者试验本例时,注意三点: matlab

画任意多边形的一种方法;保证绘图数据首尾重合,使勾画多边形封闭;使用图柄对图形的属性进行精细设置。

clf;n=10; % 多边形的边数

dt=2*pi/n;t=0:dt:2*pi

t=[t,t(1)]; %fill 指令要求数据向量的首位重合,使图形封闭。

x=sin(t);y=cos(t);

fill(x,y,'c');axis off % 画填色多边形,隐去坐标轴。

ht=text(0,0,'\fontname{ 隶书 }\fontsize{32} 十边形 ');% 文字注释,且得图柄。

set(ht,'color','k','horizontalalignment','center') % 依靠图柄设置属性。

图 7.4.1 .4-1 由 fiil 产生的填色多边形

【例 7.4.1 .4-2 】三维填色指令 fill3 演示。注意:( 1 ) x,y,z

的相应列元素构成一个三维封闭多边形。本例有 4 列,因此有 4 个多边形。图 7.4.1.4-2 中的“ 1 , 2 , 3 , 4

” 号三角形分别由 x,y,z 的第 1 , 2 , 3 , 4 列生成。( 2

)为使多边形封闭,每列的首尾元素应该重合。若不重合,则将默认把最后一点与第一点相连,强行使多边形封闭。( 3 )该指令的第 4

输入宗量可取定色单字符(如 'r' , 'g' 等),也可取与 x 同维的数值矩阵。( 4 )所填色彩受 c 和色图的双重响应。( 5

)本例图中三角形的编号是通过“图形窗”编辑而生成的。

x=[0.5 0.5 0.5 0.5;0.5 0.5 0.5 0.5;0 1 1 0];

y=[0.5 0.5 0.5 0.5;0.5 0.5 0.5 0.5;0 0 1 1];

z=[1 1 1 1;0 0 0 0;0 0 0 0];c=[1 0 0 1;0 1 0 1;0 0 1 0];

fill3(x,y,z,c),view([-10 55]),colormap cool

xlabel('x'),ylabel('y'),box on;grid on

图 7.4.1 .4-2 三维填色

7.4.1.5 射线图compass和羽毛图feather

【 * 例 7.4.1 .5-1 】 compass 和

feather 指令的区别。

t=-pi/2:pi/12:pi/2; % 在 区间,每 取一点。

r=ones(size(t)); % 单位半径

[x,y]=pol2cart(t,r); % 极坐标转化为直角坐标

subplot(1,2,1),compass(x,y),title('compass')

subplot(1,2,2),feather(x,y),title('feather')

图 7.4.1 .5-1 compass 和 feather 指令的区别

7.4.1.6 voronoi图和三角剖分

【 * 例 7.4.1 .6-1 】用 voronoi 多边形勾画每个点的最近邻范围。 voronoi

多边形在计算几何、模式识别中有重要应用。从本例图 7.4.1.6-1

中,可以看到,三角形顶点所在多边形的三条公共边是剖分三角形边的垂直平分线。

clf;rand('state',111)

n=30;a=rand(n,1)-0.5;b=rand(n,1)-0.5; % 产生 30 个随机点

t=delaunay(a,b); % 求相邻三点组

t=[t t(:,1)]; % 为使三点剖分三角形封闭而采取的措施

voronoi(a,b) % 画 voronoi 图

hold on;axis square

fill(a(t(10, :)),b(t(10,:)),'y'); % 画一个剖分三角形

voronoi(a,b) % 重画 voronoi 图,避免线被覆盖。

图 7.4.1 .6-1 voronoi 多边形和 delaubay 三角剖分

7.4.1.7 彩带图ribbon

【 * 例 7.4.1 .7-1 】用彩带绘图指令 ribbon ,绘制归化二阶系统 在不同

值时的阶跃响应,如图 7.4.1.7-1 所示。对于本例程序,有以下几点值得注意:( 1 )程序中使用了 control

toolbox 中的两个指令 tf 和 step 。这

tf 是一个( matlab5.x 版起用的)“对象”。( 2 )本例构作的 s 是一个单输入 8

输出系统,作用于该 s 的 step 指令也将在一次调用中产生 8 个子系统的阶跃响应。( 3 )在下段程序运行后,有兴趣的读者可显示

s ,以观察系统是如何描写的。( 4 )本例为了得到较好的表现效果,采用了视角、明暗、色图、光照控制。( 5

)为使程序有一定通用性,图例采用元胞数组生成。( 6 )本例产生的图 7.4.1.7-1 中,除“

”外,所有标识都是由下段指令产生的。( 7 )“ ”中的斜向箭头无法由指令生成,而是直接通过“图形窗”编辑实现的( matlab5.3

版起用)。( 8 )本例程序有通用性。只要修改第 <2>

条指令对阻尼系数的设定,就可获得响应的彩带图形。

clear,clf

zeta2=[0.1 0.2 0.3 0.4 0.5 0.6 0.8 1.0];

%<2>

n=length(zeta2); for k=1:n;num{k,1}=1;den{k,1}=[1

2*zeta2(k) 1];ends=tf(num,den); % 产生单输入多输出系统

t=(0:0.4:30)'; % 时间采样点

[y,x]=step(s,t); % 单输入多输出系统的响应

tt=t*ones(size(zeta2)); % 为画彩带图,生成与函数值 y 维数相同的时间矩阵。

ribbon(tt,y,0.4) % 画彩带图

% 至此彩带图已经生成。以下指令都是为了使图形效果更好、标识更清楚而用。

view([150,50]),shading interp,colormap(jet)% 设置视角、明暗、色图

light,lighting phong,box on % 设置光源、照射模式、坐标框

for k=1:n;str_lgd{k,1}=num2str(zeta2(k));end,legend(str_lgd)%

图例设置

str1='\itg = (s^{2} 2\zetas 1)^{-1}';

str2='\fontsize{16}\fontname{ 隶书 } 取不同 ';

str3='{\fontsize{10}\it\zeta}';

str4='\fontsize{16}\fontname{ 隶书 } 时的阶跃响应 ';

title([str1,str2,str3,str4]),zlabel('\ity(\zeta,t)

\rightarrow')

图 7.4.1 .7-1 二阶系统在不同阻尼系数时的响应

7.4.1.8 离散杆图stem , stem3

【 * 例 7.4.1 .8-1 】本例表现一个离散方波的快速 fourier 变换的幅频。本例左图用极坐标指令

polar 绘出,右图用三维离散杆图指令 stem3

绘出。

matlab

的 polar 指令是建筑在 plot 基础上的。指令执行后,出现的极坐标轴及分度标识也是由 plot

以一种“固定”模式产生的。因此,极坐标轴的控制很不灵活,它只能以比较简单的方式表达函数。如对于本例左图,那图形小、线条细、文字太密的缺陷,就较难克服。相比而言,先借助极坐标和直角坐标转换,然后再通过直角坐标图形指令加以表现,往往更显灵活、方便。如本例的右图。

th = (0:127)/128*2*pi; % 角度采样点

rho=ones(size(th)); % 单位半径

x = cos(th);y = sin(th);

f = abs(fft(ones(10,1),128)); % 对离散方波进行 fft 变换,并取幅值。

rho=ones(size(th)) f'; % 取单位圆为绘制幅频谱的基准。

subplot(1,2,1),polar(th,rho,'r')

subplot(1,2,2),stem3(x,y,f','d','fill') % 取菱形离散杆头,并填色。

view([-65 30]) % 控制角度,为表现效果。

图 7.4.1 .8-1 离散方波的幅频谱

7.4.1.9 二维半图指令pcolor, contour, contourf

【 * 例 7.4.1 .9-1 】本例重点演示所谓“二维半”指令:伪彩图 pcolor

;等位线指令 contour 、 contourf

;等位线标高指令 clabel 的配合使用和区别。练习本例时注意:( 1 )本例等位线指令中的第 4

输入宗量 n 设定高度的等级数,第 5 输入宗量设定等位线的线型、色彩。( 2 )左右两图的标高方法不同。左图的标识以“

”引导,水平放置。右图沿线布置。这是由 clabel 的调用格式不同产生的。( 3

)左右两图色彩的形成方法不同,色彩效果也不同。( 4 )在左图中, colorbar

画出一根垂直色标尺,而 caxis 决定该色标尺的刻度。

clf;clear;[x,y,z]=peaks(40); % 获得 peaks 图形数据

n=4; % 等高线分级数

subplot(1,2,1),pcolor(x,y,z) % 伪彩图

colormap jet,shading interp

hold on,c=contour(x,y,z,n,'k:'); % 用黑虚线画等位线,并给出标识数据。

clabel(c) % 随机标识法

zmax=max(max(z));zmin=min(min(z));caxis([zmin,zmax]) %

决定色标尺的范围

colorbar % 画垂直色标尺

hold off,subplot(1,2,2)

[c,h,cf]=contourf(x,y,z,n,'k:'); % 用黑虚线画填色等位线,并给出标识数据。

clabel(c,h) % 沿线标识法

图 7.4.1 .9-1 “二维半”指令的演示

7.4.1.10 散点图scatter , scatter3 , plotmatrix

【 * 例 7.4.1 .10-1 】表现函数 。请注意本例中的 3 个指令:( 1 )散点图指令

scatter3 ,标志三维数据点。它的前三个输入宗量必须是同长的向量,如指令

<5> 。( 2 )带垂帘的网线图指令

meshz ,它的调用格式与 mesh 没有什么不同。此外,再次提醒读者注意指令

<2> 。这样处理的目的是避免 0/0

的不定性。该处理方法是求极限的一种数值方法。

x=3*pi*(-1:0.2:1);y=x;[x,y]=meshgrid(x,y);

r=sqrt(x.^2 y.^2) eps;z=sin(r)./r;% 引入 eps 避免 0/0 ,

%<2>

c=abs(del2(z)); % 求“五点格式”差分,反映曲面变化。

meshz(x,y,z,c) % 由曲面变化决定用色

hold on,scatter3(x(:),y(:),z(:),'filled')

%<5>

hold off,colormap(hot)

图 7.4.1 .10-1 三维散点图

【 * 例 7.4.1 .10-2 】指令 plotmatrix 有两种基本调用方式:( 1

)对于数据矩阵 维的 x 和 维的 y ,调用格式 plotmatrix(x,y) 将画出一个分割成

个子散点图。其中第 个子散点图是根据 y 第 列和 x 第 列数据画出的。( 2 )对于数据矩阵 维的 x ,调用格式

plotmatrix(x) 将画出分割成 个子块的图。该图的对角块,画出的是 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)

图 7.4.1 .10-2 plotmatrix 表现数据统计特性

7.4.1.11 不规则数据的网线图和曲面图

【 * 例 7.4.1 .11-1 】用三角网线、曲面图表现函数 。

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) % 增强亮度

图 7.4.1 .11-1 不规则数据的三维表现

7.4.1.12 泛函绘图指令fplot

【 * 例 7.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{ 隶书 } 等分采样绘图 ')

图 7.4.1 .12-1 右图曲线中底部有明显绘图缺陷

7.4.2 四维表现

7.4.2.1 用色彩表现函数的特征

【 * 例 7.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); % 计算对 r

的全导数

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)subplot(1,2,2),surf(x,y,z,r),title('no.

2 surf(x,y,z,r)')

shading faceted;colorbar( 'horiz')

图 7.4.2 .1-1 色彩分别表现函数的高度和半径特征

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)')

图 7.4.2 .1-2 色彩分别表现函数的 x 方向和 y 方向导数特征

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))

%<17>

shading faceted;colorbar( 'horiz')title('no.

6 surf(x,y,z,abs(dz2))')

图 7.4.2 .1-3 色彩分别表现函数的径向导数和曲率特征

7.4.2.2 切片图和切片等位线图

【 * 例 7.4.2 .2-1 】利用 slice 和

contourslice 表现 matlab 提供的无限大水体中水下射流速度数据 flow 。

flow 是一组定义在三维空间上的函数数据。

在本例中,从图中的色标尺可知,深红色表示“正速度”(向图的左方),深蓝表示“负速度”(向图的右方)。

% 以下指令用切面上的色彩表现射流速度

clf;[x,y,z,v]=flow; % 取 4 个 的射流数据矩阵, v 是射流速度。

x1=min(min(min(x)));x2=max(max(max(x))); % 取 x 坐标上下限

y1=min(min(min(y)));y2=max(max(max(y))); % 取 y 坐标上下限

z1=min(min(min(z)));z2=max(max(max(z))); % 取 z 坐标上下限

sx=linspace(x1 1.2,x2,5); % 确定 5 个垂直 x 轴的切面坐标

sy=0; % 在 y=0 处,取垂直 y 轴的切面

sz=0; % 在 z=0 处,取垂直 z 轴的切面

slice(x,y,z,v,sx,sy,sz); % 画切片图

view([-12,30]);shading interp;colormap jet;axis off;colorbar

图 7.4.2 .2-1 切片图

% 以下指令用等位线表现射流速度

clf;v1=min(min(min(v)));v2=max(max(max(v))); % 射流速度上下限

cv=linspace(v1,v2,15); % 在射流上下限之间取 15 条等位线

contourslice(x,y,z,v,sx,sy,sz,cv);view([-12,30])

colormap jet;colorbar;box on

图 7.4.2 .2-2 切片等位线图

7.4.3 动态图形

7.4.3.1 彗星状轨迹图

【 * 例 7.4.3 .1-1 】简单二维示例。(请读者自己在指令窗中运行以下指令。)

shg;n=10;t=n*pi*(0:0.0005:1);x=sin(t);y=cos(t);

plot(x,y,'g');axis square;hold on

comet(x,y,0.01);hold off

【 * 例 7.4.3 .1- 2 】卫星返回地球的运动轨线示意。(请读者自己在指令窗中运行以下指令。)

shg;r0=1; % 以地球半径为一个单位

a=12*r0;b=9*r0;t0=2*pi; %t0 是轨道周期

t=5*t0;dt=pi/100;t=[0:dt:t]';

f=sqrt(a^2-b^2); % 地球与另一焦点的距离

th=12.5*pi/180; % 卫星轨道与 x-y 平面的倾角

e=exp(-t/20); % 轨道收缩率

x=e.*(a*cos(t)-f);y=e.*(b*cos(th)*sin(t));z=e.*(b*sin(th)*sin(t));

plot3(x,y,z,'g') % 画全程轨线

[x,y,z]=sphere(30);x=r0*x;y=r0*y;z=r0*z; % 获得单位球坐标

grid on,hold on,surf(x,y,z),shading interp % 画地球

x1=-18*r0;x2=6*r0;y1=-12*r0;y2=12*r0;z1=-6*r0;z2=6*r0;

axis([x1 x2 y1 y2 z1 z2]) % 确定坐标范围

view([117 37]),comet3(x,y,z,0.02),hold off % 设视角、画运动轨线

图 7.4.3 .1-1 卫星返回地球轨线示意

7.4.3.2 色图的变幻

【例 7.4.3 .2-1 】色彩变幻(因印刷关系,无法表现。请读者自己在指令窗中运行以下指令。注意:在 256

色情况下,才可被正确执行)

peaks

spinmap

7.4.3.3 影片动画

【 * 例 7.4.3 .3-1 】三维图形的影片动画。(因印刷关系,无法表现本例。请读者自己在指令窗中运行以下指令。)

clf;shg,x=3*pi*(-1:0.05:1);y=x;[x,y]=meshgrid(x,y);

r=sqrt(x.^2 y.^2) eps; z=sin(r)./r;

h=surf(x,y,z);colormap(jet);axis off

n=12;mmm=moviein(n); % 预设画面矩阵。新版完全可以取消此指令 。

for i=1:n

rotate(h,[0 0 1],25); % 是图形绕 z 轴旋转 25 度 / 每次

mmm(:,i)=getframe; % 捕获画面。新版改为 mmm(i)=getframe 。

end

movie(mmm,5,10) % 以每秒 10 帧速度,重复播放 5 次。

总结

以上是凯发k8官方网为你收集整理的matlab三维feather,matlab高维图形,别地方抄来的的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图