版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第18章 MATLAB 文件I/O操作MATLAB程序可以看作数据处理器,该处理器从外部源(文件、网络、磁盘等)读入数据,并将处理结果输出到指定设备(文件、网络、磁盘等),即I/O操作,如图所示。MATLAB的I/O操作在实际中经常被用到,例如将MATLAB处理结果数据存储到文件中以备查看或其他程序做进一步处理,或输出中间结果到文件以备调试等。本章主要介绍MATLAB与文件的数据交换操作,即文件I/O操作,在MATLAB中提供了许多读取和写入文件的函数,通过这些函数可以控制I/O操作更多的细节。18.1 MATLAB可读取文件格式在MATLAB中许多文件格式都是可以读取的,可在MATLAB h
2、elp 里搜索Supported File Formats得到如图所示的列表,显示了MATLAB可读取文件的格式、文件内容、文件的扩展名以及MATLAB提供的函数。18.2 高级文件I/O程序高级文件程序包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程。例如,如果用户有一个包含数值和字母的文本文件(text file)想导入MATLAB,用户可以调用一些低级文件程序自己写一个函数,或者是直接用TEXTREAD函数。使用高级文件程序的关键是:文件必须是相似的(homogeneous),也就是说,文件必须有一致的格式。下面将结合实例来说明高级文件I/O程序,这些程序语法都相对简单,
3、本节中将不过多的阐述,主要通过实例进行说明。18.2.1 LOAD/SAVE函数LOAD和SAVE函数是主要的高级文件I/O程序。LOAD可以读取MAT文件或者用空格间隔的格式相似的ASCII 文件。SAVE可以将MATLAB变量写入MAT格式文件或者空格间隔的ASCII文件。SAVE函数的调用格式为:save filename list of variables options。说明:如果只有save,那么当前工作区内的所有数据存储在一个名为matlab.mat的文件中。如果后面有一个文件名,那么这些数据将会存储在“filename.mat”的文件中。如果后面还包括一系列的变量,那么就只存储
4、这些特殊的变量。18.2.2 UIGETFILE/UIPUTFILE函数UIGETFILE/UIPUTFILE是基于图形用户界面(GUI)的。UIGETFILE函数让用户选择一个文件来写(类似与Windows 菜单栏中的另存为选项);UIPUTFILE函数既可以选择已存在的文件改写,也可以输入新的文件名。18.2.3 UIIMPORT/IMPORTDATA函数UIIMPORT是基于GUI的功能强大的高级文件程序,用于读取复杂的数据文件。IMPORTDATA具有UIIMPORT功能,但不打开GUI。18.2.4 TEXTREAD/STRREAD函数TEXTREAD是一个强大的动态高级文件I/O程
5、序,主要用来读取ASCII格式的文本或数值数据文件。除了从字符串读取外,在读取文件时STRREAD类似于TEXTREAD。两个函数可以用诸多参数来改变其具体的工作方式,它们返回用户指定输出的数据。18.3 低级文件I/O程序MATLAB提供了基于C语言实现的低级文件I/O函数。用这些低级文件I/O函数,MATLAB可以读写你所知道的任意文件格式。MATLAT中的这种基本的低级文件I/O命令如表所示。低级文件I/OMATLAB低级文件I/O函数fclose关闭文件Feof测试文件结束ferror查询文件I/O的错误状态fgetl读文件的行,忽略回行符fgets读文件的行,包括回行符fopen打开
6、文件fprintf把格式化数据写到文件或屏幕上fread从文件中读二进制数据frewind返回到文件开始fscanf从文件中读格式化数据fseek设置文件位置指示符ftell获取文件位置指示符fwrite把二进制数据写到文件里18.3.1 FOPEN函数fopen函数打开一个文件并返回这个文件的文件句柄值。它的基本调用形式如下:fid = fopen(filename, permission) 说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名filename用字符串形式,表示待打开的数据文件。Permission表示打开方式,常见的打开方式如表所示。FOP
7、EN函数打开方式打开方式描 述r只读方式打开文件(默认的打开方式),该文件必须已存在r+读写方式打开文件,打开后先读后写,该文件必须已存在w打开后写入数据。若该文件存在则更新;不存在则创建w+读写方式打开文件,先读后写。若该文件存在则更新;不存在则创建a在打开的文件末端添加数据。若文件不存在则创建a+打开文件后,先读入数据再添加数据。文件不存在则创建18.3.2 FCLOSE函数fclose函数用来关闭打开的文件并返回文件操作码。文件在进行读、写等操作后,应及时关闭,以免数据丢失。fclose的调用格式为:status = fclose(fid)说明:该函数关闭fid所表示的文件。status
8、为关闭文件操作的返回代码,若关闭文件成功,返回0,否则返回-1。若要关闭所有已打开的文件使用fclose(all)。18.3.3 FWRITE函数fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:count = fwrite(fid, A, precision)说明:其中count返回所写的数据元素个数,fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度如表所示。默认的数据精度为uint8。MATLAB中的数据精度表MATLAB描 述schar 8位有符号整数uchar 8位无符号整数int88位整数int1616位整数int3
9、232位整数int6464位整数uint88位无符号整数uint16 16位无符号整数uint32 32位无符号整数uint64 64位无符号整数float3232位浮点float6464位浮点double64位浮点18.3.4 FREAD函数fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:A, count = fread(fid, count, precision)说明:其中A是用于存放读取数据的矩阵、count是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用,则它的值可以取下列值:N(读取N个元素到一个列向量)、in
10、f(读取整个文件)、M,N(读数据到MN的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。18.3.5 FSCANF函数fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:A,count = fscanf(fid, format, size)说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如%12f。size为可选项,决定矩阵A中数据的大小,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、M,N(读数据到MN的矩阵中,数据按列存放)。18.3.6 FPRINTF函数fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:count = fprintf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度农用三轮车生产设备采购与租赁合同2篇
- 幼儿园安全教育方案
- 新生入学需求培训
- 2024版工程居间信任托管合同3篇
- 双基建设活动方案
- 链家租赁合同范本3篇
- Starter Unit 2 【B卷(能力提升)】-2023-2024学年七年级英语上册单元速记•巧练(人教版)
- 2024二手房买卖居间协议3篇
- 讲师签约合同范本
- 《高层住宅设计》课件
- 水凝胶剂项目商业计划书范文参考
- 城中村改造合作框架协议书范本
- 在一个长方形中画一个最大的正方形
- 基于单片机的温度传感器制作
- 10以内加减法口算题(13套100道题-可直接打印)
- 企业中层管理人员绩效考核中存在的问题及对策
- 桩基检测静载试验培训教材ppt课件
- 新教科版五年级上册科学期末试卷
- 汽车维修价格表格模板
- 第七章 行为修正模式
- 小猪吃的饱饱教案
评论
0/150
提交评论