预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共56页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章文件I/O5.1概述MATLAB提供一种特殊的二进制格式文件——MAT文件,扩展名为.mat,它为MATLAB提供了跨平台的数据交互能力。它的文件格式如图5-1所示。一般MAT文件分为两个部分:文件头部和数据。文件的头部主要包括一些描述性文字和相应的版本与标识,占用128个字节。此后是保存在MAT文件中的数据,数据是按照数据类型、数据长度和数据三个部分保存的。 MAT文件不仅可以被MATLAB的函数加载,而且还能被C或者Fortran语言编写的程序读写,MATLAB提供了相应的API用于这些应用程序的编写。有关MAT文件的C/Fortran语言API参阅《MATLAB外部接口编程》一书。相对于数据导出,数据文件的读取往往是进行文件I/O比较重要的环节。在MATLAB中进行数据文件的导入有三种不同的途径,分别是高级例程、低级例程和文件导入向导。 MATLAB的高级例程分别针对不同的数据文件格式提供了不同的文件I/O函数,这些函数能满足大多数情况下数据导入和导出的需要。 低级例程则为访问任何一种类型文件的数据提供了接口,前提是必须知道文件的格式,否则读取的结果是错误的。 文件的导入向导是供数据导入用的图形界面,用于导入已知格式的文件和有一定规则的ASCII文本文件。5.2高级例程save:将当前工作空间中的变量保存到数据文件中。 save 将所有的变量保存到matlab.mat文件中 savefilenamevar1var2...... 将变量var1、var2等保存到文件中 savefilenamedata* (功能同上)其中*为通配符 savefilename将所有的变量保存到指定文件中 save......option 按照option的不同取值保存数据 save('filename',......) save指令的函数格式用法其中,option可以有如下几种可能: -append在已有的数据文件尾部追加数据 -ascii 保存为ASCII文本格式,数据按照八位精度保存 -ascii-double 保存为ASCII文本格式,数据按照十六位精度保存 -ascii–tabs保存为ASCII文本格式,数据之间使用制表符作为间隔 -ascii-doube–tabs上述几种选项的结合 -mat 保存为二进制的MAT文件格式(默认) -v4 保存为版本4格式的数据文件load:将数据文件的数据导入到MATLAB的工作空间。 load将matlab.mat文件中所有变量加载到当前工作空间 loadfilename将指定文件中所有变量加载到当前工作空间 loadfilenamevar1var2......将指定文件中指定的变量var1 var2......加载到当前工作空间 loadfilename-ascii 将数据文件按照文本格式加载 loadfilename-mat 将数据文件按照MAT文件格式加载 S=load(......) load指令的函数格式用法注意: 使用load指令加载数据文件时,数据文件只要保存在MATLAB的搜索路径上即可。 若不指明数据文件的扩展名,则数据文件默认按照二进制的MAT文件格式加载,否则都按照文本格式文件加载。例子5-1save和load指令示例。 在MATLAB命令行窗口中,键入下面的指令: >>clearall >>%创建变量 >>x1=2;x2=3;x3=4;y1=0; >>%保存数据 >>savexdatax1x2 >>%察看当前路径下的MAT文件 >>dir*.mat xdata.mat >>%将数据保存为ASCII格式文件 >>savexdata2.datx*-ascii >>clearall >>%加载数据——默认加载二进制格式文件>>loadxdata >>whos Name SizeBytesClass x1 1x18doublearray x2 1x18doublearray Grandtotalis2elementsusing16bytes >>%加载ACSII格式的数据 >>loadxdata2.dat >>whos Name SizeBytesClass x1 1x18doublearray x2 1x18doublearray xdata2 3x124doublearray Grandtotalis5elementsusing40bytes在加载文本格式的数据时,将所有的数据保存在一个变量中。同样,保存数据的时候,若不保存为二进制格式的MAT文件,则最好指定数据文件的扩展名。 注意: Mathworks公司推荐用户在使用MATLAB的过程中尽量使用MAT文件保存用户的数据,这样便于不同平台下的用户共享数据。5.2.2文本文件操作 前面小节介绍的load和save指令