《MATLAB第五章数据显示及存储.ppt》由会员分享,可在线阅读,更多相关《MATLAB第五章数据显示及存储.ppt(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章第五章 数据显示数据显示 及存取及存取本章将着重介绍:数据的显示;数据的保存;数据的读取。目录 5.1 二 维 绘 图 5.2 三 维 绘 图 5.3 图 形 处 理 5.4 图 形 窗 口 5.5 MAT文件应 5.6 文件I/O 习 题5.1 二 维 绘 图 5.1.1 函数plot()5.1.2 函数fplot()5.1.3 函数ezplot()二维图形的绘制是MATLAB语言图形处理的基础。本节将主要介绍函数:plot();fplot();ezplot()。5.1.1 函数plot()1plot(y)2plot(x,y)3plot(x,y,s)1plot(y)参数y可以是向量、实
2、数矩阵或复数向量;若y为向量,图形以向量索引为横坐标值,以向 量元素值为纵坐标值;若y为实数矩阵,则分别绘制y的各列向量;若y为复向量,图形以复向量对应的实部向量为 横坐标值,以虚部向量为纵坐标值。2plot(x,y)参数x和y均可为向量和矩阵,分以下三种情况;参数x和y均为n维向量;参数x为n维向量且y为mn或nm的矩 阵;参数x和y均为mn矩阵。3plot(x,y,s)参数x和y的含义同plot(x,y)中的相同。常见的可用字符及其意义如下表所示。5.1.2 函数fplot()函数plot()将外部的离散数据转化为图形。数据点越多绘制的曲线越精确,越能反映数据 的规律;数据点少,则可能无法
3、正确反映数据的规律。函数fplot()帮助用户构建所需要绘制函数的数据,函数plot()的具体用法如下:其中各项参数的含义如下。function:待绘制的函数。limits:定义x轴(自变量)的取值范围 xmin xmax,或x轴和y轴(应变量)的范围 xmin xmax ymin ymax。LineSpec:定义绘图的线型、颜色等。tol:相对误差容忍度,默认值为2e-3。n:当n1时,至少绘制n+1个点,默认 值为1。axes_handle:坐标轴句柄,函数的图 形将绘制在这个坐标系中。P1,P2:向函数传递参数值。X,Y:采样的自变量和对应的函数值。5.1.3 函数ezplot()函数e
4、zplot()用于绘制函数在某一自变量区域内的图形,它的具体使用方法如下:当f=f(x)时,各参数的含义如下。ezplot(f):绘制函数在默认区域-2*pix2*pi内的图形。ezplot(f,min,max):绘制函数在区域 minxmax内的图形。当f=f(x,y)时,各参数的含义如下。ezplot(f):绘制函数在默认区域-2*pix2*pi,-2*piy2*pi内的图 形。ezplot(f,xmin,xmax,ymin,ymax):绘制函数f(x,y)=0在区域 xminxxmax,yminyymax内的 图形。ezplot(f,min,max):绘制函数 f(x,y)=0在区域mi
5、nxmax、minymax内的图形。ezplot(x,y):绘制参数方程组x=x(t),y=y(t)在默认区域0t2*pi内的图形。ezplot(x,y,tmin,tmax):绘制参数方 程组x=x(t),y=y(t)在区域 tminttmax内的图形。ezplot(.,figure_handle):在句柄为 figure_handle的窗口中绘制图形。ezplot(axes_handle,.):在句柄为 axes_handle的坐标系上绘制图形。h=ezplot(.):返回图形的句柄。需要说明的是,上述函数中的自变量名称不局限于x和y。5.2 三 维 绘 图 5.2.1 函数plot3()5
6、.2.2 函数mesh()5.2.3 函数surf()5.2.4 改进的三维绘图函数最常用的三维绘图:三维曲线图,对应的MATLAB函数为 plot3()网格图和,对应的MATLAB函数为mesh()曲面图,对应的MATLAB函数为和surf()5.2.1 函数plot3()函数plot3()具体使用方法如下:其中X1、Y1、Z1为向量或矩阵,LineSpec定义曲线线型、颜色等,PropertyName为线对象的属性名,PropertyValue为相应属性的值,h是用于存放曲线簇中每一个线对象的句柄变量。当X1、Y1、Z1为长度相同的向量时,函 数plot3()将绘得一条分别以向量X1、Y1
7、、Z1为x,y,z轴坐标值的空间曲线;当X1、Y1、Z1均为mn的矩阵时,函数 plot3()将绘得m条空间曲线,其中,第I 条空间曲线分别以X1、Y1、Z1矩阵的第I 列分量为x,y,z轴坐标值的空间曲线。5.2.2 函数mesh()函数mesh()可以绘出在某一区间内的完整曲面,其具体使用方法如下:其中:C用于定义颜色;X和Y必须均为向量 若X和Y的长度分别为m和n,则Z必须为mn的矩阵,在这种情况下,网格线的顶点为(X(j),Y(i),Z(i,j));若参数中没有提供X,Y,则将(i,j)作为Z(i,j)的X,Y轴坐标值。5.2.3 函数surf()与函数mesh()不同,函数mesh(
8、)绘制得到的是网格图,而函数surf()绘制得到的是着色的三维曲面,其具体使用方法如下:其中,各参数的含义与函数mesh()命令中的相同。前面介绍了3个基本的三维绘图函数,下面介绍一些常用的图形处理功能。5.3.4 子图和图形保持1命令hold 2函数subplot()在绘图过程中,经常会碰到下面两种情况:在已绘制的图上填加新曲线;将几个子图绘制在一个图形上。MATLAB提供命令hold和函数subplot()解决上述问题。1命令hold 该命令常用的使用方法如下:2函数subplot()该函数的作用是将一个图形分隔成若干子区域,在指定子区域显示指定子图,使用方法如下。5.3.5 图形的打印和
9、输出 MATLAB提供了几种方式输出当前的图形。通过图形窗口的【Edit】菜单下的 【Copy Figure】命令,拷贝的选项可以 通过【Copy Options】进行设置。使用内置打印引擎或系统的打印服务。5.4 图 形 窗 口 1创建与控制2菜单操作 3工具栏1创建与控制 创建图形窗口的函数是figure(),使用方法如下:同时可以通过下面两个函数查阅和设置图形窗口的属性和参数。5.5 MAT文件应用 下面重点介绍数据的保存和调用。MAT文件是MATLAB数据存储的默认文件格式,文件扩展名是.mat。可借助命令save和load实现MATLAB对数据的读写,使用方法如下:5.6 文件I/O
10、 5.6.1 打开和关闭文件 5.6.2 存取二进制文件 5.6.3 存取文本文件 5.6.4 文件内的位置控制 MATLAB提供对二进制文件或ASCII文件进行方便的打开、关闭和存储等操作。5.6.1 打开和关闭文件1打开文件2关闭文件1打开文件 根据操作系统的要求,在程序中要使用或者创建一个磁盘文件时,必须向操作系统发出打开文件的命令,使用完毕后,还必须关闭这个文件。在MATLAB中,使用C语言中的同名函数fopen()来完成打开文件的功能,其具体使用方法如下:其中,filename是要打开的文件名称,permission表示对文件的处理方式,包括如下的设置参数。r:只读文件。w:只写文件
11、,覆盖文件原有内容(如 果文件名不存在,则生成新文件)。a:增补文件,在文件尾增加数据(如果 文件名不存在,则生成新文件)。r+:读写文件(不生成文件)。w+:创建一个新文件或者删除已 有文件内容,并可进行读写操作。a+:读取和增补文件(如果文件名 不存在,则生成新文件)。2关闭文件 所有打开的文件必须关闭,否则会造成系统资源浪费,其具体使用方法如下:可通过检查status的值来确认文件是否关闭,如果关闭成功,则返回0;否则返回1。上述代码是关闭文件标识为fid的文件,如果要关闭所有打开的文件,则只需执行下面的代码:需要说明的是,打开和关闭文件的操作都比较费时,尽量不要将它们置于循环体中。5.
12、6.2 存取二进制文件1读取文件2写入文件 1读取文件 函数fread()可以从文件中读取二进制数据。它将读出每一个(特殊)字符对应的ASCII码,并以矩阵的形式返回,同时将文件指针放在读取的内容后,使用方法如下:其中,fid是某打开文件对应的文件标识,size控制返回矩阵的大小和形式,它的有效输入如下所示。n:读取前n个字符,并写入一个列向量中。inf:读至文件末尾。m,n:读取数据到mn的矩阵中,按列排 序。precision包括两部分:一是数据类型和精度定义,比如int、float等;二是一次读取的位数。常用的精度如下表所示,并且与C语言中的类似形式进行对比。还有一些类型是与平台有关的,
13、平台不同可能位数不同,如下表所示。2写入文件 函数fwrite()的作用是将矩阵元素按指定的二进制格式写入某个打开的文件,并返回成功写入的数据个数,使用方法如下:其中:fid是从某打开文件对应的文件标识;a是待写入的矩阵;precision设定了结果的精度。5.6.3 存取文本文件1读取文件2写入文件1读取文件 采用函数fgetl()和函数fgets()读出文本文件中的某行内容时,使用方法如下:两个函数区别:fgetl会舍弃换行符;而fgets则保留换行符。当确定文件的ASCII码格式时,可用函数fscanf()进行更精确的读取,使用方法如下:其中:fid为打开文件对应的文件标识;format
14、为指定的字符串格式;a为返回矩阵;count为可选项,表示成功读取的数据个 数;size为可选项,可限制从文件读取的数据 数目。format用于指定读入数据的类型,常用的格式如下。%s:按字符串进行转换。%d:按十进制数据进行转换。%f:按浮点数进行转换。2写入文件 函数fprintf()将数据转换成指定字符串格式,并写入文本文件中,使用方法如下:其中:fid是要写入已打开文件的标识;format是指定字符串格式;y是要写入的数据;count是成功写入的字节数。fid值可以代表标准输出的1和代表标准出错的2,如果fid字段省略,则默认值为1,即输出到屏幕上。常用的格式类型说明符如下。%e:科学
15、计数形式,即数值表示成a10b形 式。%f:固定小数点位置的数据形式。%g:在上述两种格式中自动选取较短的格式。5.6.4 文件内的位置控制 读写数据时默认从磁盘文件头开始,并顺序向后,直至文件末尾。操作系统通过一个文件指针,来指示当前的读写位置。控制文件内位置指针的函数表(1)函数feof()函数feof()用于测试指针是否在文件结束位置,使用方法如下:如果指针位于标识为fid的已打开文件的末尾,则返回1,否则返回0。(2)函数fseek()函数fseek()用于设定指针位置,使用方法如下:其中:fid是已打开文件的标识;offset是偏移量,以字节为单位;origin是基准点;status为0表示操作成功,-1表示操作失 败;如 果 要 了 解 更 多 信 息 可 以 调 用 函 ferror()。(3)函数ftell()函数ftell()用于返回现在的位置指针,其具体使用方法如下:position是距离文件起始位置的字节数,如果值为-1则说明操作失败。(4)函数frewind()函数frewind()用于将指针返回到文件开始,使用方法如下: