matlab 第六章 数据和函数的可视化

matlab 第六章 数据和函数的可视化
matlab 第六章 数据和函数的可视化

内容简介

本书由纸质媒体和电子媒体有机结合而成。纸质媒体便于读者进行系统、全面、长时间连续地阅读,便于随心的翻阅、浏览;而电子媒体向读者提供色彩信息、动态交互的软件环境,提供读者实践本书内容所需的各种文件。

本书第一章系统讲述MATLAB6.5的集成工作平台,引导读者初会MATLAB基本用法。第二、三章系统叙述MATLAB6.1的四大基本数据类型(数值数组、字符串数组、元胞数组、构架数组),至于其它扩展数据类型(函数句柄、符号数据、内联函数、unit数组、稀疏类)则另辟章节专述。此后,本书用九个独立章分述MATLAB6.5的数值计算、符号计算、函数和数据可视、面向对象编程、GUI交互操作界面设计、EXE独立应用程序生成、实现不同软件平台交互的API、M-book 数据图形文字环境集成等八大通用功能。本书用专门的一章深入浅出地阐明SIMULINK的分层建模、仿真功能、与MATLAB交互的功能。

全书包含390多个计算范例。所有算例的程序是可靠、完整的。读者可以在自己的MATLAB环境中完全准确地重现本书所提供的算例结果。算例的举一反三,将使读者很快掌握要领,从模仿走向灵活应用。

书中正文(包括算例)所涉及的指令全部罗列在附录的“A索引”中,用户很容易根据关键字符找到相关的正文说明和算例应用。

本书随带包含700多个文件的光盘。光盘文件包含:可直接在Notebook中运行的全部算例的M-book DOC文件;可在MATLAB环境中直接运行的算例M和MDL文件;可供读者实践MATLAB编译器及API的所有文件;可在PowrPoint中放映幻灯的PPT文件。它们不仅有效地提供了纸质媒体所不具备的交互能力和色彩感染力,而且弥补了纸质媒体没有SIMULINK模型源码文件、没有PPT源码文件、没有编译源文件和验证文件的缺陷。

本书既可作为理工科院校研究生、本科生系统学习的教材,又可以作为广大科技工作者掌握和精通MATLAB的自学用书和使用手册。

作者简介

张志涌

1944年出生于无锡;教授,获政府专项津贴,IEEE高级会员,中国电子学会高级会员,江苏省自动化学会理事、网络与系统专委会主委;1967年毕业于清华大学自动控制系,1982年初在上海交通大学获控制理论硕士学位,1989—90年在荷兰王国Eindhoven技术大学研修系统辨识、故障诊断;主持并完成国家自然科学基金、省部基金及科研项目近十项,发表论文50余篇,著作1本。现主要从事自动控制教学和计算机控制、计算机仿真、故障诊断等研究。

1989年在荷兰用MATLAB3.0研究系统辩识和故障诊断;1992年对MATLAB3.0实现汉化并编写了相应讲义;在1994、95年借助于MATLAB3.5、4.0先后完成国家自然科学基金和国家教委留学生基金课题研究;1996年在省基金支持下从事MATLAB4.2c建立仿真实验室的研究,并于1997年编写出版《掌握和精通MATLAB》;1997年底获原邮电部预研经费资助开始了以MATLAB5.x为工具的智能技术研究。

第六章 数据和函数的可视化

视觉是人们感受世界、认识自然的最重要依靠。数据可视化的目的在于:通过图形,从一堆杂乱的离散数据中观察数据间的内在关系,感受由图形所传递的内在本质。MATLAB 一向注重数据的图形表示,并不断地采用新技术改进和完备其可视化功能。 本章将系统地阐述:离散数据表示成图形的基本机理;曲线、曲面绘制的基本技法和指令;特殊图形的生成和使用示例;如何使用线型、色彩、数据点标记凸现不同数据的特征;如何利用着色、灯光照明、反射效果、材质体现和透明度处理渲染、烘托表现高维函数的性状;如何生成和运用标识,画龙点睛般地注释图形;如何显示和转换unit8、unit16、double 三种不同数据类型所体现的变址、灰度和真彩图象,如何读写各种标准图象格式文件;如何通过图形窗的交互操作对图形进行修饰、调整;如何打印和输出图形文件。 本章的图形指令只涉及MATLAB 的“高层”绘图指令。这种指令的形态和格式友善,易于理解和使用。 整章内容遵循由浅入深、由基本到高级、由算例带归纳的原则。所有算例都是运行实例,易于读者实践试验,并从中掌握一般规律。 MATLAB 从5.x 向6.x 版本升级后,旧版中的本章全部内容几乎可以不加修改地用于6.x 版。此外,本章新版为适应升级增加了或改变了如下内容:

● MATLAB 从6.0版起,图形对象“面”、“块”、“象”具备了透明属性,进一步增

强了计算结果可视化的感染力。为此,本章专设第6.5.4节,详细阐述透明度处理的机理和指令协调细节。

● 在MATLAB 升级过程中,专门用于图像数据存储的 unit8, unit16数据类型进一步完善。

对此,本章专辟第6.6.3节说明这种数据类型的特点和使用注意事项。

● 本章还对升级后的图形窗界面的编辑功能进行了新的全面阐述(见第6.7节)。

引导

离散数据和离散函数的可视化

【例6.1.1-1】用图形表示离散函数1

)

6(--=n y 。

n=0:12;

y=1./abs(n-6);

plot(n,y,'r*','MarkerSize',20) grid on

连续函数的可视化

【例6.1.2-1】用图形表示连续调制波形)9sin()sin(t t y 。

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

可视化的一般步骤

绘制二维图形的一般步骤 绘制三维图形的一般步骤

二维曲线绘图的基本操作 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-2】用图形表示连续调制波形)9sin()sin(t t y 及其包络线。

t=(0:pi/100:pi)'; % <1> y1=sin(t)*[1,-1]; % <2> y2=sin(t).*sin(9*t); % <3> t3=pi*(0:9)/9; % <4>

y3=sin(t3).*sin(9*t3);plot(t,y1,'r:',t,y2,'b',t3,y3,'bo') % <5>

【例6.2.1-3】用复数矩阵形式画Lissajous 图形。(在模拟信号时代,Lissajous 图形常用来测量信号的频率。)

t=linspace(0,2*pi,80)'; % <1>

X=[cos(t),cos(2*t),cos(3*t)]+i*sin(t)*[1, 1, 1]; %(80x3)的复数矩阵 plot(X) % <3>

axis square % <4> legend('1','2','3')

【例6.2.1-4】采用模型1252

2

22=-+

a y a x 画一组椭圆。 th = [0:pi/50: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')

曲线的色彩、线型和数据点形

色彩和线型 数据点形

【例6.2.2.2-1】用图形演示平面上一个方块四个顶点在仿射投影(Affine Projection )下的位置、形状变化。

%

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;0,0,1];

%

alpha=2;beta=3;S=[alpha,0,0;0,beta,0;0,0,1];

E=eye(3,3);% <10>

TRS={E,T,R,S}; %<11>

ss={'r^','rd','rp','rh'}; %<12>

tt={'Original Square','Translation','Rotation','Scaling'};

% <13>

for i=1:4

W=TRS{i}*Sq; %

subplot(2,2,i)

for k=1:4

plot(W(1,k),W(2,k),ss{k}); % <19>

axis([-3,3,-1,5]),axis equal

hold on % <21>

end

plot(W(1,:),W(2,:)) % <23>

grid on %

title(tt{i}) %

hold off %

end

坐标、刻度和分格线控制

坐标控制

【例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),axis normal,grid on,

title('Normal and Grid on')

subplot(2,3,2),plot(x,y),axis equal,grid on,title('Equal')

subplot(2,3,3),plot(x,y),axis square,grid on,title('Square')

subplot(2,3,4),plot(x,y),axis image,box off,title('Image and Box off') subplot(2,3,5),plot(x,y),axis image fill,box off

title('Image and Fill')

刻度、分格线和坐标框

【例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); %<2> plot(t,y,'r-','LineWidth',3)

%<3>

axis([-inf,6*pi,0.6,inf])

%<4>

set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)]) %<5> grid on

%<6>

title('\it y = 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>

hold on;plot(ts,0.95,'bo','MarkerSize',10);hold off %<10> cell_string{1}='\fontsize{12}\uparrow';

%<11>

cell_string{2}='\fontsize{16} \fontname{隶书}镇定时间'; %<12> cell_string{3}='\fontsize{6} ';

%<13>

cell_string{4}=['\fontsize{14}\rmt_{s} = ' num2str(ts)];

%<14>

text(ts,0.85,cell_string)

%<15>

xlabel('\fontsize{14} \bft \rightarrow') %<16>

图形标识

简捷指令形式

精细指令形式

【例6.2.4.2-1】本例非常简单,专供试验标识用。

clf;t=0:pi/50:2*pi;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.5.1-1】利用hold 绘制离散信号通过零阶保持器后产生的波形。

t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);

双纵坐标图

【例6.2.5.2-1】画出函数x x y sin =和积分?

=

x

dx x x s 0

)sin (在区间]4,0[上的曲线。

clf;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}}';

【例6.2.5.2-2】受热压力容器的期望温度是120度,期望压力是0.25Mpa 。在同一张图上画出它们的阶跃响应曲线。

S1=tf([1 1],[1 3 2 1]); S2=tf(1,[1 1 1]); [Y1,T1]=step(S1); [Y2,T2]=step(S2);

plotyy(T1,120*Y1,T2,0.25*Y2,'stairs','plot')

多子图

【例6.2.5.3-1】演示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])

%<5>

plot(t,y12,'b-',t,[y1,-y1],'r:');axis([0,pi,-1,1])

交互式图形指令

ginput

gtext

legend zoom

三维绘图的基本操作 三维线图指令plot3

【例6.3.1-1】简单例题。

t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);

')

三维网线图和曲面图

三维图形的数据准备

网线图、曲面图基本指令格式

【例6.3.2.2-1】用曲面图表现函数2

2

y x z +=。

clf,x=-4:4;y=x;[X,Y]=meshgrid(x,y); Z=X.^2+Y.^2;

surf(X,Y,Z);hold on,colormap(hot) stem3(X,Y,Z,'bo')

-4

-2

2

4

-4

-2

2

4

010

20

30

40

透视、镂空和裁切

图形的透视

【例6.3.3.1-1】透视演示

[X0,Y0,Z0]=sphere(30); X=2*X0;Y=2*Y0;Z=2*Z0; surf(X0,Y0,Z0); shading interp

hold on,mesh(X,Y,Z),colormap(hot),hold off hidden off

axis equal,axis off

图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;

surf(X,Y,Z);colormap(spring),shading interp light('position',[-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)

light('position',[50,-10,5]),lighting flat

material([0.9,0.9,0.6,15,0.4])

图6.3-5

裁切

【例6.3.3.3-1】表现切面

clf,x=[-8:0.05:8];y=x;[X,Y]=meshgrid(x,y);ZZ=X.^2-Y.^2; ii=find(abs(X)>6|abs(Y)>6);

ZZ(ii)=zeros(size(ii));

surf(X,Y,ZZ),shading interp;colormap(copper)

light('position',[0,-15,1]);lighting phong

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)本例第<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

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

【例6.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')

【例6.4.1.2-2】用三维直方图表现上例数据。

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

图 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,[1 0 1 0 0]),legend({'1','2','3','4','5'})

填色图fill,fill3

【例6.4.1.4-1】读者试验本例时,注意三点:MATLAB画任意多边形的一种方法;保证绘图数据首尾重合,使勾画多边形封闭;使用图柄对图形的属性进行精细设置。

clf;n=10;

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

t=[t,t(1)];

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

fill(x,y,'c');axis off

ht=text(0,0,'\fontname{隶书}\fontsize{32}十边形');

【例6.4.1.4-2】三维填色指令fill3 演示。注意:(1)X,Y,Z的相应列元素构成一个三维封闭多边形。本例有4列,因此有4个多边形。图6.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

射线图compass和羽毛图feather

【例6.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')

Voronoi图和三角剖分

【例6.4.1.6-1】用Voronoi多边形勾画每个点的最近邻范围。Voronoi多边形在计算几何、模式识别中有重要应用。从本例图6.4-8中,可以看到,三角形顶点所在多边形的三条公共边是剖分三角形边的垂直平分线。

clf;rand('state',111)

n=30;A=rand(n,1)-0.5;B=rand(n,1)-0.5;

T=delaunay(A,B);

T=[T T(:,1)];

voronoi(A,B)

hold on;axis square

fill(A(T(10,:)),B(T(10,:)),'y');

voronoi(A,B)

彩带图ribbon

【例6.4.1.7-1】用彩带绘图指令ribbon ,绘制归化二阶系统1

21

2

++=

s s G ζ在不同ζ值时的阶跃响应,如图6.4-9所示。对于本例程序,有以下几点值得注意:(1)程序中使用了Control Toolbox 中的两个指令tf 和step 。这tf 是一个“对象”。(2)本例构作的S 是一个单输入8输出系统,作用于该S 的step 指令也将在一次调用中产生8个子系统的阶跃响应。(3)在下段程序运行后,有兴趣的读者可显示S ,以观察系统是如何描写的。(4)本例为了得到较好的表现效果,采用了视角、明暗、色图、光照控制。(5)为使程序有一定通用性,图例采用元胞数组生成。(6)本例产生的图6.4.1.7-1中,除“?t ”外,所有标识都是由下段指令产生的。(7)“?t ”中的斜向箭头无法由指令生成,而是直接通过“图形窗”编辑实现的。(8)本例程序有通用性。只要修改第<2>条指令对阻尼系数的设定,就可获得相应的彩带图形。

clear,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];end S=tf(Num,Den); t=(0:0.4:30)'; [Y,x]=step(S,t);

tt=t*ones(size(zeta2)); 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')

图 6.4--9

离散杆图stem , stem3

【例6.4.1.8-1】本例表现一个离散方波的快速Fourier变换的幅频。本例左图用极坐标指令polar绘出,右图用三维离散杆图指令stem3 绘出。

th = (0:127)/128*2*pi;

rho=ones(size(th));

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

f = abs(fft(ones(10,1),128));

rho=ones(size(th))+f';

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

subplot(1,2,2),stem3(x,y,f','d','fill')

matlab在统计数据的描述性分析的应用

统计数据的描述性分析 一、实验目的 熟悉在matlab中实现数据的统计描述方法,掌握基本统计命令:样本均值、样本中位数、样本标准差、样本方差、概率密度函数pdf、概率分布函数df、随机数生成rnd。 二、实验内容 1 、频数表和直方图 数据输入,将你班的任意科目考试成绩输入 >> data=[91 78 90 88 76 81 77 74]; >> [N,X]=hist(data,5) N = 3 1 1 0 3 X = 75.7000 79.1000 82.5000 85.9000 89.3000 >> hist(data,5)

2、基本统计量 1) 样本均值 语法: m=mean(x) 若x 为向量,返回结果m是x 中元素的均值; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的均值。 2) 样本中位数 语法: m=median(x) 若x 为向量,返回结果m是x 中元素的中位数; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的中位数3) 样本标准差 语法:y=std(x) 若x 为向量,返回结果y 是x 中元素的标准差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的标准差

std(x)运用n-1 进行标准化处理,n是样本的个数。 4) 样本方差 语法:y=var(x); y=var(x,1) 若x 为向量,返回结果y 是x 中元素的方差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的方差 var(x)运用n-1 进行标准化处理(满足无偏估计的要求),n 是样本的个数。var(x,1)运用n 进行标准化处理,生成关于样本均值的二阶矩。 5) 样本的极差(最大之和最小值之差) 语法:z= range(x) 返回结果z是数组x 的极差。 6) 样本的偏度 语法:s=skewness(x) 说明:偏度反映分布的对称性,s>0 称为右偏态,此时数据位于均值右边的比左边的多;s<0,情况相反;s 接近0 则可认为分布是对称的。 7) 样本的峰度 语法:k= kurtosis(x) 说明:正态分布峰度是3,若k 比3 大得多,表示分布有沉重的尾巴,即样本中含有较多远离均值的数据,峰度可以作衡量偏离正态分布的尺度之一。 >> mean(data) ,

基于MATLAB平台的可视化图像处理系统设计方法

[收稿日期]20050228 [作者简介]黄书先(1962),女,1983年大学毕业,硕士,副教授,现主要从事石油勘探开发研究与科研管理工作。 基于MATLAB 平台的可视化图像处理系统 设计方法 黄书先 (长江大学科学技术处,湖北荆州434023) [摘要]以MATLAB 为工作语言和开发环境,开发了一个在M AT LAB 平台下的可视化图像处理系统, 可实现包括对测井图像在内的一般图像的精细处理,并能和用户开发的程序接口。为M AT LAB 的再开发 和可视化系统的设计作了有益的探索。 [关键词]MATLAB;图像处理;可视化GUI 界面 [中图分类号]TP 311111 [文献标识码]A [文章编号]16731409(2005)04015803 MAT LAB 的图像处理工具为自然科学各学科领域的学者、研究人员和工程师提供了一个直观的灵活的环境,用以解决复杂的图像处理问题。用MAT LAB 语言开发的图像处理算法可以在所有支持MAT LAB 的平台上共享。也可以将m 语言算法和现存的C 程序集成在一起或者将MATLAB 开发的m 语言算法和GU Is 编译为C/C++代码,供其他程序调用,或者发布为一个独立的应用程序。下面笔者提出一个基于MATLAB 平台的可视化图像处理系统设计方法,可用于包括测井图像资料在内的一般图像的精细处理。 1 系统总体设计 在MAT LAB 中有个重要的图像处理工具包[1],该工具包是由一系列支持图像处理操作的函数组成的,按功能可以分为以下几类:图像显示;图像文件输入与输出;几何操作;像素值统计;图像增强;图像识别;图像滤波;图像变换;邻域和块操作;二值图像操作;颜色映射和颜色空间转换;图像格式转换等。和其他工具包一样,用户还可以根据需要书写自己的函数,以满足特定的需要;也可以将这个工具包和信号处理工具包或小波工具包等其他工具包联合起来使用。 MAT LAB 提供了交互式的GU I 开发环境[2~4],用户只需要设置各个对象相应的属性,系统自动生成与之对应的界面,大大减少了开发的难度。本设计的MAT LAB 图像处理系统由封面、主界面和各个子功能界面组成,其框图如图1所示。程序总流程图如图2所示。 2 封面界面设计 首先用MAT LAB 编辑封面的脚本文件,生成系统的封面界面,然后再进入处理的主界面。 在设计封面时,要做好封面的总体布局,力求完美。要插入背景,首先要找到所用的函数(这在一般的书中很难找到);其次要注意设置axes 的属性。在显示背景图像时,不能用imshow ()函数,如果用此函数,背景图像只能显示在封面的一部分,不能整屏覆盖;而要用imagesc ()函数。MATLAB 提供修改文本中文字的字体,它支持华文中宋、华文彩云、华文仿宋、楷书、黑体等,功能较强。 在设计封面的过程中,最主要的技术是要解决时间的显示,如果只用MATLAB 中的clock ()函数,则显示的是静态时间,而不会显示和电脑同步的动态时间。为了解决这个问题,需做一个循环判断语句:while find (get (0,'c hildren'))==h0。成立的条件是,只要是当前窗口循环,否则停止,这样可以减少CPU 的负担。同时,要实时提取clock ()函数,可用fix (clock),使提取的时间更美观。#158#长江大学学报(自科版)2005年4月第2卷第4期/理工卷第2卷第2期 Jour nal of Yangtze University (Nat Sci Edit)Apr 12005Vol 12No 14/Sci &Eng V,Vol 12No 12

Matlab对采样数据进行频谱分析

使用Matlab对采样数据进行频谱分析 1、采样数据导入Matlab 采样数据的导入至少有三种方法。 第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。 第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File --> Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。据本人经验,当数据大于15万对之后,读入速度就会显著变慢,出现假死而失败。 第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load 等,如果采样数据保存在txt文件中,则推荐使用 textread命令。如 [a,b]=textread('data.txt','%f%*f%f'); 这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于C语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。强烈推荐! 2、对采样数据进行频谱分析 频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。一般不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析M程序举例如下: clc fs=100; t=[0:1/fs:100]; N=length(t)-1;%减1使N为偶数 %频率分辨率F=1/t=fs/N p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); %上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析 figure(1) plot(t,p); grid on title('信号 p(t)'); xlabel('t') ylabel('p')

实验五_MATLAB计算的可视化

实验五 MATLAB 计算的可视化(一) 实验目的 1. 熟练掌握MATLAB 二维曲线的绘制 2.掌握图形的修饰 3.掌握三维图的绘制 4.了解各种特殊图形的绘制 内容与步骤 1.在同一幅图形窗口中分别绘制y1=sin(t)和y2=cos(t)二条函数曲线,t 的取值范围为[0,10]。y1用红色虚线表示,y2用蓝色实线表示,横坐标轴名称为“时间t ”,纵坐标轴名称为“正弦、余弦”,整个图形的标题为“正弦和余弦曲线”。在坐标(1.7*pi ,-0.3)处添加文字“sin(t)”, 在坐标(1.6*pi ,0.8)处添加文字“cos(t)”,并在右上角添加图例,其运行界面图如下图所示。之后并尝试修改坐标轴刻度。 2.用subplot 命令在同一个窗口的不同子窗口绘制曲线y=sin(t),y1=sin(t+0.25) y2=sin(t+0.5),其中t=[0 10]。 3.绘制三维曲线:?? ? ??=≤≤==)cos()sin()200() cos()sin(t t t z t t y t x π (注意:用plot3命令) 4.三维网线图:绘制z=sin(y)cos(x) 三维网线图。 5. 三维曲面图 绘制22y x z +=的三维曲面图,x 在[-5,5]范围,y 在[-5,5]范围。将曲面图颜色用shading 命令连续变化,并用颜色标尺显示色图(使用函数colorbar 生成)。生成的图形如下图所示。

6.请绘制一个饼形图,数据如下表所示 7. 用semilogx命令绘制传递函数为1//(s+1)(0.5s+1)的对数幅频特性曲线,横坐标为w,纵坐标为Lw,w的范围为10-2-103,按对数分布。

数据和函数的可视化

1. 众所周知:一对实数标量(x,y)可表示为平面上的一个点;进而,一对实数“向量”(x ,y ) 可表现为平面上的一组点。 2. 离散函数可视化的步骤是:先根据离散函数特征选定一组自变量x = ] x ,...,x ,[N 21T x ; 再根据所给离散函数 )(x n f y n 算得相应的y=T N y y y ],...,,[2 1 ,然后在平面几何地 表现这组向量对(x ,y )。 3. 连续函数可视化包含三个重要环节:一是,从连续函数获得一组采样数据,即选定一组 自变量采样点(包括采样的起点、终点和采样步长),并计算相应的函数值;二是,离散数据的可视化;三是,图形上离散点的连续化。 4. 二维曲线和图形: 表5.2-1 MA TLAB 提供的二维图形绘制指令 5.基本调用格式plot(x,y,’s ’)//平面曲线的几何位置、点形、线型和色彩。’s ’不加指定,那么plot 将使用默认设置——“蓝色细实线”绘制曲线 表5.2-2 离散数据点形允许设置值 连续线性允许设置值:-//细实线 -.//点划线 ://虚点线 –虚划线 点线色彩允许设置值:b(蓝) g (绿) r (红) c (青) m (品红) y (黄) k (黑) w (白) Plot 的衍生调用格式:(1)单色或多色绘制多条曲线:plot(X,Y,’s ’)//用s 指定的点形线型色彩绘制多条曲线 plot(X,Y)//采用默认的色彩次序用细实线绘制多条曲线 (2)多三元组绘制多条曲线:plot(X1,Y1,’s1’,X2,Y2,’s2’,…,Xn,Yn,’sn ’) (3)单输入量绘线:plot(Y) plot 的属性可控调用格式: plot(x,y,’s ’,’PropertyName ’,PropertyValue,…) 表5.2-5 线对象的常用属性名和属性值

Matlab大数据处理

Matlab大数据处理2:硬盘访问.mat文件 分类:Matlab Hack2013-09-08 20:16 146人阅读评论(0) 收藏举报Matlab程序中经常要访问.mat文件,通常在作法是用load函数直接加载.mat文件。如果.mat文件非常大,超过了系统可用内存的时候该怎么办呢?Matlab2013b为提供了matfile函数,matfile函数可以通过索引直接访问.mat文件中的Matlab变量,而无需将.mat文件加载入内存。 matfile有两种用法: m = matfile(filename),用文件名创建matfile对象,通过这个对象可以直接访问mat文件中的matlab变量。 m = matfile(filename,'Writable',isWritable),isWritable开启或关闭文件写操作。 使用示例: 1. 向mat文件中写入变量 x = magic(20); m = matfile('myFile.mat'); % 创建一个指向myFile.mat的matfile对象 m.x = x; % 写入x m.y(81:100,81:100) = magic(20); % 使用坐标索引

2. 加载变量 filename = 'topography.mat'; m = matfile(filename); topo = m.topo; %读取变量topo [nrows,ncols] = size(m,'stocks'); %读取stocks变量的size avgs = zeros(1,ncols); for idx = 1:ncols avgs(idx) = mean(m.stocks(:,idx)); end 3. 开启写权限 filename = 'myFile.mat'; m = matfile(filename,'Writable',true); 或者 m.Properties.Writable = true;

【原创】MATLAB实验报告-第二次-用MATLAB实现计算数据可视化-北京交通大学

MATLAB 上机实验报告( 2 ) 实验内容: 一、试用如下几种方法来建立向量,观察结果 ( 1) x=1:5, x=(1:5) ' 实验结果:x=1:5是行向量,x=(1:5)是列向量.且1为初始值,5为终止值,默认的步长为 1. >> x=1:5 1 2 3 4 5 >> x=(1:5)' x = 1 2

3 4 5 ( 2) x=0:pi/4:pi 实验结果:x=0:pi/4:pi 指的是x=(0,0.25*pi,0.50*pi,0.75*pi,pi). 其中pi为圆周率初始值为0,终止值为pi,步长为pi/4. >> x=0:pi/4:pi x = 0 0.7854 1.5708 2.3562 3.1416 (3)x=(0:0.2:3) ', y=e-x)p.(*sin(x) 实验结果:x的初始值为0,终止值为3,步长为0.2.而函数y表示将x向量中的每一个数代入函数y=e%x)*sin(x)得到的函数值组成的向量. >> x=(0:0.2:3)', y=exp(-x).*sin(x)

x = 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000

0.1627 0.2610 0.3099 0.3223 0.3096 0.2807 0.2430 0.2018 0.1610 0.1231 0.0896 0.0613 0.0383 0.0204 0.0070 (4) k=linspace(-pi,pi,5), k=logspace(-3,-1,5) 实验结果:k=linspace(-pi,pi,5)产生的是初始值为-pi,终止值为 pi,元素总数为5的行向量,即k的步长为pi/2. k=logspace(-3,-1,5产生的是初始值为10八(-3),终止值为10八(-1),元素总数为5的列向量.

实验4、matlab的计算可视化和GUI设计

p345 subplot(2,2,1) t1=0:0.1:2; y1=sin(2*pi*t1); plot(t1,y1); title('y=sin(2\pit)') 练习: subplot(2,2,2) t2=0:0.1:2; y2=[exp(-t2);exp(-2*t2);exp(-3*t2)]; plot(t2,y2) axis([0 2 -0.2 1.2]); title('y=e-t,y=e-2t,y=e-3t') 练习: subplot(2,2,3); t3=[0 1 1 2 2 3 4]; y3=[0 0 2 2 0 0 0]; plot(t3,y3); axis([0 4 -0.5 3]); title('脉冲信号') 练习: subplot(2,2,4); t4=0:0.1:2*pi; plot(sin(t4),cos(t4));

axis([-1.2 1.2 -1.2 1.2]); axis equal; title('圆') 练习: P346 x=0:0.1:20; zeta=0 y1=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); plot(x,y1) zeta=0.3; y2=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); hold on plot(x,y2,'r:') zeta=0.5; y3=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); plot(x,y3,'g*') zeta=0.707; y4=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); plot(x,y4,'m-') title('二阶系统曲线') legend('\zeta=0','\zeta=0.3','\zeta=0.5','\zeta=0. 707') grid on gtext('\zeta=0') gtext('\zeta=0.3') gtext('\zeta=0.5') gtext('\zeta=0.707') ginput(3) zeta = ans = 2.6037 0.9035 13.1106 2.0029 4.2166 1.0380 P347 h_fig=gcf h_axis=gca h_line1=gco h_title=get(gca,'title') h_text2=findobj(h_fig,'string','\zeta=0.3') h_fig = 1 h_axis = 151.0018 h_line1 = 1 h_title = 152.0018 h_text2 = Empty matrix: 0-by-1 set(h_line1,'linewidth',5)

第6章matlab数据分析与多项式计算_习题答案

第6章 MATLAB数据分析与多项式计算 习题6 一、选择题 1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。B A.1 B.3 C.5 D.7 2.已知a为3×3矩阵,则运行mean(a)命令是()。B A.计算a每行的平均值 B.计算a每列的平均值 C.a增加一行平均值 D.a增加一列平均值 3.在MATLAB命令行窗口输入下列命令: >> x=[1,2,3,4]; >> y=polyval(x,1); 则y的值为()。 D A.5 B.8 C.24 D.10 4.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。D A.一个是标量,一个是方阵 B.都是标量 C.值相等 D.值不相等 5.在MATLAB命令行窗口输入下列命令: >> A=[1,0,-2]; >> x=roots(A); 则x(1)的值为()。 C A.1 B.-2 C. D. 6.关于数据插值与曲线拟合,下列说法不正确的是()。A A.3次样条方法的插值结果肯定比线性插值方法精度高。 B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。 C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到极小。 D.插值和拟合都是通过已知数据集来求取未知点的函数值。 二、填空题 1.设A=[1,2,3;10 20 30;4 5 6],则sum(A)= ,median(A)= 。 [15 27 39],[4 5 6[ 2.向量[2,0,-1]所代表的多项式是。2x2-1 3.为了求ax2+bx+c=0的根,相应的命令是(假定a、b、c已经赋值)。为了

matlab计算结果的可视化

第五讲计算结果的可视化 本节介绍MATLAB 的两种基本绘图功能:二维平面图形和三维立体图形。 5.1 二维平面图形 5.1.1 基本图形函数 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线, 当x 为m× n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘 制多条曲线。 例5.1.1 画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 图5.1.1 函数plot 绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专 门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实 现它们的功能。 - 2 - 表5.1.1 绘图参数表 色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式 y 黄- 实线. 点<小于号 m 紫:点线o 圆s 正方形 c 青-. 点划线x 叉号 d 菱形 r 红- - 虚线+ 加号h 六角星 g 绿* 星号p 五角星 b 蓝v 向下三角形 w 白^ 向上三角形 k 黑>大于号 例如,在上例中输入 >> plot(x,y1,'r+-',x,y2,'k*:') 则得图5.1.2 图5.1.2 使用不同标记的plot 函数绘制的正弦曲线 5.1.2 图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 表5.1.2 图形修饰函数表

中国矿业大学 实验六 MATLAB数据可视化

实验六MATLAB数据可视化 一、实验目的 掌握MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。 二、实验内容 (1) 二维图形绘制。 (2) 三维曲线和三维曲面绘制。 三、实验步骤 1.二维图形绘制 (1) 二维图形绘制主要使用函数plot。 >> clear all; >> x=linspace(0,2*pi,100); >> y1=sin(x); >> plot(x,y) >> hold on >> y2=cos(x) >> plot(x,y) >> hold off

注:hold on 用于保持图形窗口中原有的图形,hold off解除保持。 (2) 函数plot 的参数也可以是矩阵。 >> close all >> x=linspace(0,2*pi,100); >> y1=sin(x); >> y2=cos(x); >> A=[y1 ; y2]'; >> B=[x ; x]' >> plot(B,A)

(3) 选用绘图线形和颜色。>> close all >> plot(x,y1,'g+',x,y2, 'r:') >> grid on

(4) 添加文字标注。 >> title('正弦曲线和余弦曲线') >> ylabel('幅度') >> xlabel('时间') >> legend('sin(x)', 'cos(x)') >> gtext('\leftarrowsinx')

(5) 修改坐标轴范围。 >> axis equal >> axis normal >> axis([0 pi 0 1.5]) 程序如下: x=linspace(0,2*pi,100); y1=sin(x); y2=cos(x); A=[y1 ; y2]'; B=[x ; x]' plot(B,A) plot(x,y1,'g+',x,y2, 'r:') axis equal axis normal axis([0 pi 0 1.5])

matlab实验 数据可视化方法

实验四数据可视化方法 [实验内容] 一.仿照运行,体会数据可视化方法。 1已知n=0,1,……,12,y=,运行下面程序,体会离散数据可视化方法。 说明: ·plot和stem指令均可以实现离散数据的可视化,但通常plot更常用于连续函数中特殊点的标记;而stem广泛运行与数字信号处理中离散点的图示。·用户在运行上面例程时会发现在命令窗口出现警告:Warning: Divide by zero!即警告程序中出现非零数除以0的指令。MATLAB对于这种情况并不中止程序,只是给该项赋值为inf以做标记。 2.下面时用图形表示连续调制波形y=sin(t)sin(9t),仿照运行,分析表现形式不同的原因。 二.编程实现。 1.用图形表示连续调制波形y=sin(t)sin(9t),过零点及其包络线,如下图所示。

2. 编写函数[x,n]=stepseq(n0,n1,n2),实现: u(n)=, n为整数 并编写脚本文件实现: x(n)=n·[u(n)-u(n-10)]+10[u(n-10)-u(n-20)], 0≤n≤20要求在脚 本文件中调用stepseq 函数,最后绘出序列x(n)在给定区间的波形图。 3.编写一个函数文件[y,n]=sigadd(x1,n1,x2,n2),实现两个对应样本之间的相加,其中x1是长度为n1的序列,x2是长度为n2的序列,n1、n2分 别是x1、x2的位置信息(n1、n2均为整数),如: n1={ -3,-2,-1,0,1,2,3,4},对应的 x1={ 2, 3, 1,4,1,3,1,2}; n2={-4,-3,-2,-1,0,1,2},对应的 x2={ 1, 3, 2, 5,1,3,4}。 当调用函数[y,n]=sigadd(x1,n1,x2,n2)时,我们应该得到: n={-4,-3,-2,-1,0,1,2,3,4},对应的 y={ 1, 5, 5, 6,5,4,7,1,2}。 仔细观察 sigadd 函数的功能。编好函数文件程序后,请在命令窗口调用,验证正确性,记录验证结果。 [实验结果] 一.1.

数据可视化常用的五种方式与案例分析报告

数据可视化常用的五种方式及案例分析 概念借助于图形化的手段,清晰、快捷有效的传达与沟通信息。从用户的角度,数据 可视化可以让用户快速抓住要点信息,让关键的数据点从人类的眼睛快速通往心灵深处。数据可视化一般会具备以下几个特点:准确性、创新性和简洁性。 常用五种可视化方法 下面从最常用和实用的维度总结了如下5种数据可视化方法,让我们来一一看一下: 一、面积&尺寸可视化对同一类图形(例如柱状、圆环和蜘蛛图等)的长度、高度或面 积加以区别,来清晰的表达不同指标对应的指标值之间的对比。 这种方法会让浏览者对数据及其之间的对比一目了然。制作这类数据可视化图形时,要用数学公式计算,来表达准确的尺度和比例。 a: 天猫的店铺动态评分天猫店铺动态评分模块右侧的条状图按精确的比例清晰的表达 了不同评分用户的占比。从下图中我们第一眼就可以强烈的感知到5分动态评分的用户占绝对的比例。 b: 联邦预算图如下图,在美国联邦预算剖面图里,用不同高度的货币流清晰的表达了 资金的来源去向,及每一项所占金额的比重。

c: 公司黄页-企业能力模型蜘蛛图如下图,通过蜘蛛图的表现,公司综合实力与同行平均水平的对比便一目了然。 二、颜色可视化 通过颜色的深浅来表达指标值的强弱和大小,是数据可视化设计的常用方法,用户一眼看上去便可整体的看出哪一部分指标的数据值更突出。a: 点击频次热力图比如下面这眼球热力图,通过颜色的差异,我们可以直观的看到用户的关注点。

b: 2013年美国失业率统计在图中可以看到,通过对美国地图以州为单位的划分,用不同的颜色来代表不同的失业率等级围,整个的全美失业率状况便尽收眼底了。 c: 美国手机用户城市分布图中红点是用iPhone的人,绿点是用安卓的人。这两在微博上看到的图,第一是美国一个城市的一览,第二图特写了纽约的市中心,尤其是曼哈顿地区。我们可以看到在市中心和主干道的人用iPhone居多,而用安卓的人都在郊区。

实验二MATLAB计算的可视化

课程实验报告 学年学期2011-2012学年第1学期 课程名称MATLAB与科学计算 实验名称实验二MATLAB计算的可视化实验室测量测绘实验中心计算机室专业年级热动113 学生姓名白治朋 学生学号2011012106 提交时间2013年10月23日 成绩 任课教师许景辉、牛亚斌 水利与建筑工程学院

实验二 MATLAB 计算的可视化 1、目的和要求 (1)熟练掌握MATLAB 二维曲线、三维图形的绘制。 (2)熟练掌握各种特殊图形的绘制。 (3)熟练掌握三维图形绘制命令。 (4)了解GUI 设计的一般过程和方法。 2、内容和步骤 参见教材实验四。 3、实验报告提交要求 (1) x=[1 2 3],y=[1 2;2 3;5 8],z=[2 6 9;3 8 8;1 5 7],绘制plot (x ,y )、plot (x ,z ),说明其各 自绘制的内容。 (2) 绘制如下图形,建立figure (2),绘图同样曲线,但标题为“你的姓名(黑体,16号字)”, 在x 坐标和y 坐标上分别标识学号和班级名称,并将网格线打开。 数组X 的列个数与矩阵y 的行个数相同, plot ( x ,y )绘制的是x 为横坐标y 的每列为纵坐标的图像。如图1。 图1 数组X 的列个数与方阵z 的行列个数相同,plot (x ,z )绘制的是x 为横坐标z 的每列为纵坐标的图像。如图2。 图2

(3)演示P133页,例题4.17 。

(4)完成课本P336图S 4.1实验,并用.m文件显示其程序内容。 (5)完成P302第四章例题4.

(6)通过绘制二阶系统阶跃响应,综合演示图形标识,请注释每条命令的含义。 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)); %找出符合条件(y-1)的绝对值>0.05的对应t,赋值给tt ts=max(tt); %ts为tt中最大值ts=9.6133 plot(t,y,'r-','LineWidth',3) %画曲线t-y,红色实线,线粗3磅 axis([-inf,6*pi,0.6,inf]) %设置坐标轴范围。x轴下限自动产生,上限为6*pi;y轴下限0.6,上限自动产生 set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)]) %二维坐标刻度设置。x轴刻度线取2*pi,4*pi,6*pi,y轴取0.95,1,1.05,max(y) grid on %显示坐标刻度线 title('\it y = 1 - e^{ -\alphat}cos{\omegat}') %用斜体1书写图名 text(13.5,1.2,'\fontsize{12}{\alpha}=0.3') %图形标识,添加文字注释。在x=13.5,y=1.2处,字体大小12磅,标注α=0.3 text(13.5,1.1,'\fontsize{12}{\omega}=0.7') %图形标识,添加文字注释。在x=13.5,y=1.1处,字体大小12磅,标注ω=0.7 hold on; %保持原有图形 plot(ts,0.95,'bo','MarkerSize',10); %在x=ts,y=0.95处画蓝色的空心圆圈,大小为

MATLAB实验四《数据和函数的可视化》

实验四数据和函数的可视化 一、实验目的 1、掌握离散数据和离散函数可视化的方法。 2、重点掌握二维曲线绘图指令的调用格式。 3、熟悉三维绘图指令的基本操作。 4、了解MATLAB绘图精细控制指令。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第五章数据和函数的可视化功能。 四、实验内容及实验步骤 1、用图形表示连续调制波形y=sin(t)sin(9t),试将程序补充完整。 t1=(0:11)/11*pi; %12个采样点偏少 t2=(0:400)/400*pi; %401个采样点密集 t3=(0:50)/50*pi; %51个采样点已够 y1=sin(t1).*sin(9*t1); %数组运算 y2=sin(t2).*sin(9*t2); y3=sin(t3).*sin(9*t3); subplot(2,2,1),plot(t1,y1,'r.') %画离散点 axis([0,pi,-1,1]),xlabel('(1)点过少的离散图形') subplot(2,2,2),plot(t1,y1,t1,y1,'r.') %画离散点及期间的连线 axis([0,pi,-1,1]),xlabel('(2)点过少的连续图形') subplot(2,2,3),plot(t2,y2,'r.') %画离散点 axis([0,pi,-1,1]),xlabel('(3)点密集的离散图形') subplot(2,2,4),plot(t3,y3) %画连续曲线 axis([0,pi,-1,1]),xlabel('(4)点足够的连续图形') 运行结果:

基于MATLAB的EXCEL数据计算与分析

基于MATLAB的EXCEL数据计算与分析 潜刘方 摘要:再怎么样希望先看摘要,阅读本文需要一定的MA TLAB基础知识,不需要excel相关知识。结合本人近期工作上的需要测量计算,想偷懒就选择了利用MATLAB偷懒,于是便有了本文。本文首先利用MA TLAB读取数据,计算,将数据写入excel,然后花了很大的精力来根据实际需要画图,最后将图保存在excel所在的文件夹下。这个m文件可谓花了我不少的时间和精力。最后根据m文件的不足(不能将图形输入到excel文档当中),进一步弥补这不足,就有了exlink(也叫excel link),在网上搜索了相关的知识,发现很多关于exlink 的培训,觉得实在可笑,所以就将exlink的使用写的比较详细,以供读者自行分析体会。关键字:MATLAB excel exlink 接口 一、前沿 MATLAB是一款应用在各个领域的数学软件,最初叫做矩阵实验室,专用于矩阵的运算,后来的版本再各个领域都得到了很好的应用,比如:通信、电力电子、电机控制、运动控制、计算机控制、自动控制,DSP数字信号处理。但是MATLAB对于数据的处理与可视化是很多软件所不能及的。 EXCEL作为办公必备软件,能对简单数据分析计算与作图分析,但是处理复杂数据显得力不从心,比如三维作图就无法利用EXCEL作出;EXCEL本身的函数远远没有MATLAB 多,MATLAB作为数据有其独特的优势,集成了很多数学函数,包括数据拟合差值等。MATLAB 可以从EXCEL中读取数据,经过相关运算之后又可以将数据写入EXCEL,假如需要重复性的对excel可以利用MATLAB编写函数,每次只要运行MATLAB程序就可以完成,大大节省时间和精力。 另外,MATLAB还有与EXCEL的接口,叫做EXLINK,运用这个接口可以在excel中完成MATLAB函数的调用,还能传送数据给MATLAB,从MATLAB当中读取数据,从MATLAB 当中读取图形,使用方便,操作简单。 二、基于MATLAB的数据分析 数据分析操作流程主要分为三步:第一步,从excel中读取数据;第二部:利用MATLAB 大量函数对数据分析处理;第三步:将分析结果写入excel中。在整个过程中,不需要打开excel软件,操作十分方便,每次操作唯一要做就是修改excel所在的目录及文件名。主要函数如下(具体使用方法可在MATLAB命令窗口输入help +函数名查看):Xlsread 从excel中读数据 Xlswrite 向excel中邪数据 num2str 将数字转换为字符串 strncmp 字符串比较 polyfit 数据拟合 polyval 具体数值代入求值 plot 作图

第6章MATLAB计算结果可视化讲解

第六章MATLAB 计算结果可视化 6.1连续函数和离散函数的可视化 【例6-1】用图形表示离散函数1 ) 6(--=n y 。 n=0:12; %产生一组自变量数据 y=1./abs(n-6); %计算相应点的函数值 plot(n,y,'r*','MarkerSize',20) %用红花标出数据点 grid on %画坐标方格 【例6-2】用图形表示连续调制波形)9sin()sin(t t y =。 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)

6.2二维曲线绘图的基本操作 6.2.1 plot 的基本调用格式 【例6-3】用图形表示连续调制波形)9sin()sin(t t y 及其包络线。 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') 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))) 6.2.3曲线的色彩、线型和数据点形 【例6-5】用图形演示平面上一个方块四个顶点在仿射投影(Affine Projection )下的位置、 形状变化。 %平面上的四个点和它们构成的方块

智慧树Python数据分析与数据可视化

xx树Python数据分析与数据可视化答案 第一章单元测试 1、缩进对于Python程序至关重要。 A:错 B:对 正确答案:【对】 2、在Python 3.x中不能使用汉字作为变量名。 A:对 B:错 正确答案:【错】 3、下面哪些是正确的Python标准库对象导入语句? A:from math import B:import math.sin as sin C:from math import sin D:import math. 正确答案:【from math import *; from math import sin】 4、Python支持面向对象程序设计。 A:对 B:错

正确答案:【对】 5、下面属于Python编程语言特点的有? A:扩展库丰富 B:代码运行效率高 C:支持命令式编程 D:支持函数式编程 正确答案:【扩展库丰富; 支持命令式编程; 支持函数式编程】 第二章单元测试 1、已知列表x = [1, 2, 1, 2, 3, 1],那么执行x.remove(1)之后,x的值为[2, 2, 3]。 A:对 B:错 正确答案:【错】 2、已知列表x = [1, 2, 3],那么执行y = x.reverse()之后,y的值为[3, 2, 1]。 A:对 B:错 正确答案:【错】 3、Python语言中同一个集合中的元素不会重复,每个元素都是唯一的。 A:错

B:对 正确答案:【对】 4、表达式3 > 5 and math.sin(0)的值为0。A:对 B:错 正确答案:【错】 5、表达式4 < 5 == 5的值为True。 A:错 B:对 正确答案:【对】 第三章单元测试 1、生成器表达式的计算结果是一个元组。 A:错 B:对 正确答案:【错】 2、包含列表的元组可以作为字典的“键”。 A:错 B:对 正确答案:【错】 3、列表的rindex()方法返回指定元素在列表中最后一次出现的位置。A:对 B:错

MATLAB可视化方法和技巧1_3复数的计算和图示

复数的计算和图示 表3 MATLAB关于复数运算的函数 {范例3_1}复数的加减法 设有两个复数z1 = 1 + 2i和z2 = 4 + 3i,其中i是虚数单位。求两个复数的和z1 + z2和差z2–z1。 [解析]复数有三种表示形式 (1)代数式 z = x + i y(3_1_1) (2)三角式 z = r(cosθ + isinθ) (3_1_2) 其中r是复数的模,θ是复角。代数式与三角式的换算关系是 r=arctan y θ(3_1_3) x x = r cosθ,y = r sinθ(3_1_4) (3)指数式 z = r e iθ(3_1_5) 其中利用了欧拉公式 e iθ= cosθ + isinθ(3_1_6) 设有两个复数 z1 = x1 + i y1,z2 = x2 + i y2(3_1_7) 复数加法是 z= z1 + z2 = (x1 + x2) + i(y1 + y2) (3_1_8) 复数减法是 z= z1 - z2 = (x1 - x2) + i(y1 - y2) (3_1_9) [程序]P3_1plus.m如下。 %复数的加减法 clear %清除变量 z1=1+2i; %第1个复数(1) x1=real(z1); %取第1个复数的实部(2) y1=imag(z1); %取第1个复数的虚部(2) x2=4; %第2个复数的实部 y2=3; %第2个复数的虚部 z2=x2+i*y2; %形成第2个复数(3) z=z1+z2; %两复数之和(4) x=real(z); %取复数的实部 y=imag(z); %取复数的虚部 figure %创建图形窗口 quiver(0,0,x1,y1,0) %在复平面画第1个复数(5)

相关文档
最新文档