好文档 - 专业文书写作范文服务资料分享网站

Matlab入门教程 

天下 分享 时间: 加入收藏 我要投稿 点赞

【例13】 下列程序绘制三维曲面图形 x=[0:0.15:2*pi]; y=[0:0.15:2*pi]; z=sin(y')*cos(x); 矩阵相乘 surf(x,y,z);

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label'); title('3-D surf'); 四、伪彩色图

pcolor:在平面图中用颜色表示高度,可实现用色彩表达等值线的目的。 函数格式: pcolor (x,y,z)

其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面上Z轴坐标。 x=[0:0.15:2*pi]; y=[0:0.15:2*pi]; z=sin(y')*cos(x); pcolor(x,y,z);

shading flat;(shading interp; shading faceted;) 五、等高线图

等高线图可通过函数contour或contour3绘制。 【例15】 多峰函数peaks的等高线图 [x,y,z]=peaks(30); contour3(x,y,z,16);

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis'); title('contour3 of peaks') 六、视点

视点位置可由方位角和仰角表示。方位角又称旋转角为视点位置在XY平面上的投影与X轴形成的角度,正值表示逆时针,负值表示顺时针。仰角又称视角为XY平面的上仰或下俯角,正值表示视点在XY平面上方,负值表示视点在XY平面下方。从不同视点绘制三维图形的函数为view。

view(az,el)中的az为方位角,el为仰角。通过系统提供的多峰函数peaks的绘制例子,可进一步说明视点对图形的影响,以及view(az,el)函数的使用。 【例14】 不同视角图形

p=peaks; 系统提供的多峰函数

subplot(2,2,1); mesh(peaks,p);

view(-37.5,30); 指定子图1的视点

title('azimuth=-37.5,elevation=30') subplot(2,2,3); subplot(2,2,2); mesh(peaks,p); mesh(peaks,p); view(-90,0); 指定子图3的视点

title('azimuth=-90,elevation=0') view(-17,60); 指定子图2的视点

title('azimuth=-17,elevation=60') subplot(2,2,7); mesh(peaks,p); view(-7,-10);指定子图4的视点 title('azimuth=-7,elevation=-10')7.5 动画设计

如果将Matlab产生的多幅图形保存起来,并利用系统提供的函数进行播放,就

可产生动画效果。系统所提供的动画功能函数有getframe、moviein和movie。 getframe函数

getframe函数可将当前图形窗口作为一个画面取下并保存。 格式:m=getframe

将每一帧画面信息数据截取下来整理成列向量。

该函数截取图形的点阵信息,图形窗口的大小,对数据向量的大小影响较大,窗口越大,所需存储容量越大。而图形的复杂性对数据容量要求没有直接的关系。 moviein函数

函数m=moviein(n)用来建立一个足够大的n列的矩阵m,用来保存n幅画面的数据,以备播放。 movie函数

movie(m,n)以每秒n幅图形的速度播放由矩阵m的列向量所组成的画面。 【例17】 播放一个不断变化的眼球程序段。

m=moviein(20); 建立一个20个列向量组成的矩阵 for j=1:20

plot(fft(eye(j+10)))

%绘制出每一幅眼球图并保存到m矩阵中 m(:,j)=getframe; end

movie(m,10);以每秒10幅的速度播放画面

再如下述程序段播放一个直径不断变化的球体。 n=30

[x,y,z]=sphere m=moviein(n); for j=1:n

surf(j*x,j*y,j*z) m(:,j)=getframe; end

movie(m,30); 7.6 图形句柄 一、句柄

在Matlab系统中,绘图命令产生的每一个部分称为图形对象,系统在创建每一个对象时,都为该对象分配唯一的一个值,称其为句柄,因此句柄就是图形对象标识符。对象、句柄以及图形对象等概念其实质是统一的,系统将每一个对象按树型层次结构组织起来,这些对象包括根对象,通常为计算机屏幕、图形窗口、坐标系统、线条、曲面、文本串、用户界面控制等。

根对象可包含一个或多个图形窗口对象,而一个图形窗口对象又可包含一组或多组坐标系子对象,线条、文本等其它对象都是坐标系的子对象。所有创建对象的函数当父对象不存在时,都会自动创建它。 计算机屏幕作为根对象自动建立,其句柄值为0。而Hf_f=figure命令则建立图形窗口对象,并返回它的句柄值给变量Hf_f。图形窗口的句柄为一整数,并显示在该窗口的标题栏,其它图形对象的句柄为浮点数,Matlab提供了一系列与句柄操作有关的函数,如gcf 、gca等。为便于识别,用大写字母开头的变量表示

句柄,如Hf_f等。 二、对象属性

所有图形对象都具有控制对象显示的属性。这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标系对象的刻度等。用户可以获取、设置对象属性,以达到控制对象的目的。当创建一个对象时,系统用一组默认属性值定制对象,用户get命令获取这些属性值,同时也可通过set命令重新设置对象属性。 set命令格式为:

set(H,’name’,value,…) 将图形对象H的name属性设置为value 其中H为句柄,name为属性名,value为name的属性值。 用set命令可以方便地设置图形对象属性,如下列程序段就是通过属性来定制图形。

x=[0:0.1:7*pi];

H=plot(x,sin(x)); 返回正弦曲线句柄H

set(H,'LineStyle','*','LineWidth',0.1);设置正弦曲线线型与线宽 其中'LineStyle'为线型属性,'LineWidth'为线宽属性。 利用get(H)命令可以返回当前句柄H对象的属性。 键入命令:get(H) 系统返回当前图形对象的有关属性: H=get(0,’CurrentFigure’)则返回根对象的’CurrentFigure’的属性值,即当前图形窗口的句柄,相当于函数gcf。get(gcf,’Children’)则返回当前坐标系对象的句柄;类似的操作用户可在使用Matlab的过程中不断积累。 三、句柄应用

利用句柄操作的有关函数,用户可以查找、访问图形对象,以达到定制对象属性,改变对象显示效果的目的。 x=-pi:pi/20:pi; y=sin(x);z=cos(x); plot(x,y,'r',x,z,'g');

Hl_lines=get(gca,'Children');

获取正、余曲线句柄向量Hl_lines for k=1:size(Hl_lines)

if get(Hl_lines(k),‘Color’)==[0 1 0] %[0 1 0]为绿颜色 Hl_green=Hl_lines(k) %返回绿色线条句柄 end end 习题

1、在[0,2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。

2、在[0,2π]范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(7x)|+1 3、采用图形保持,在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。

4、绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为 [0 2π]。 第9章 MATLAB文件操作

文件数据格式有两种形式,一是二进制文件,二是文本文件。在打开文件时需要进一步指定文件格式类型,即指定是二进制文件还是文本文件。

9.1 文件的打开与关闭 9.1.1 文件的打开

fopen函数的调用格式为: fid= fopen(文件名,打开方式)

文件名用字符串形式,表示待打开的数据文件。 常见的打开方式有:‘r’表示对打开的文件读数据, ‘w’表示对打开的文件写数据,

‘a’表示在打开的文件末尾添加数据。 rb,wb,ab(二进制文件); rt,wt,at(文本文件)

fid用于存储文件句柄值,句柄值用来标识该数据文件,其 它函数可以利用它对该数据文件进行操作。 9.1.2 文件的关闭

文件在进行完读、写等操作后,应及时关闭。 关闭文件用fclose函数,调用格式为: sta=fclose(fid)

该函数关闭fid所表示的文件。sta表示关闭文件操 作的返回代码,若关闭成功,返回0,否则返回-1。 9.2 文件的读写操作

9.2.1 二进制文件的读写操作 1.读二进制文件

fread 函数可以读取二进制文件的数据,并将数据存入矩阵。 其调用格式为:[A,COUNT]=fread(fid,size, precision)

其中A用于存放读取的数据,COUNT返回所读取的数据元素个 数。

fid为文件句柄,

size为可选项,若不选用则读取整个文件内容,若选用则它的值可 以是下列值:

(1) N表示读取 N个元素到一个列向量。 (2) Inf表示读取整个文件。

(3) [M,N]表示读数据到M×N的矩阵中,数据按列存放。 precision代表读写数据的类型 2.写二进制文件

fwrite 函数按照指定的数据类型将矩阵中的元素写入到 文件中。其调用格式为:

COUNT=fwrite (fid, A, precision)

其中COUNT返回所写的数据元素个数,fid为文件句 柄,A用来存放写入文件的数据,precision用于控制所 写数据的类型,其形式与fread函数相同。

建立一数据文件magic5.dat,用于存放5阶魔方阵。 程序如下:

fid=fopen(‘magic5.dat’,‘w’); cnt=fwrite(fid,magic(5),‘real*4’); fclose(fid);

fn=fopen('magic5.dat','rb')

aa=fread(fn,[5,5],'integer*4') aa=fread(fn,[5,5]) aaa=fread(fn,[5,5],'int') fclose(fn)

fn=fopen('rand56.dat','wb') y=rand(5,6);

%fwrite(fn,y,'float') fwrite(fn,y,'double') a=fclose(fn)

fn1=fopen('rand56.dat','rb') aa=fread(fn1,[5,6],'float') bbb=fread(fn1,[5,6],'double') fclose(fn1)

9.2.2 文本文件的读写操作 1.写文本文件

fprintf 函数的调用格式为: COUNT= fprintf(fid, format, A)

其中A存放要写入文件的数据。先按format指定的格式 将数据矩阵A格式化,然后写入到fid所指定的文件。格 式符与fscanf函数相同。 1.写文本文件

fprintf 函数的调用格式为: COUNT= fprintf(fid, format, A)

其中A存放要写入文件的数据。先按format指定的格式 将数据矩阵A格式化,然后写入到fid所指定的文件。格 式符与fscanf函数相同。 x=1:10; y=[x;x.^2];

fn=fopen('sqr.dat','w') fprintf(fn,'%d,%d\\n',y) fclose(fn)

2.读文本文件

fscanf 函数的调用格式为:

[A,COUNT]= fscanf (fid, format, size)

其中A用以存放读取的数据,COUNT返回所读取的 数据元素个数。fid为文件句柄。format用以控制读 取的数据格式,由%加上格式符组成,常见的格式 符有d,f。

size为可选项,决定矩阵A中数据的排列形式。 fn=fopen('exp.dat','r')

[aa,cn]=fscanf(fn,'%f %f',[2,11]) fclose(fn)

fn1=fopen('sqr.dat','r')

Matlab入门教程 

【例13】下列程序绘制三维曲面图形x=[0:0.15:2*pi];y=[0:0.15:2*pi];z=sin(y')*cos(x);矩阵相乘surf(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');title('3-Dsurf');四、伪彩色图pcolor:在平
推荐度:
点击下载文档文档为doc格式
14nft9stdx5gf8x599lp
领取福利

微信扫码领取福利

微信扫码分享