第三讲-文件操作

上传人:第*** 文档编号:59400818 上传时间:2018-11-07 格式:PPS 页数:30 大小:64.50KB
返回 下载 相关 举报
第三讲-文件操作_第1页
第1页 / 共30页
第三讲-文件操作_第2页
第2页 / 共30页
第三讲-文件操作_第3页
第3页 / 共30页
第三讲-文件操作_第4页
第4页 / 共30页
第三讲-文件操作_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《第三讲-文件操作》由会员分享,可在线阅读,更多相关《第三讲-文件操作(30页珍藏版)》请在金锄头文库上搜索。

1、第三讲文件操作,Matlab环境下的文件与其它系统一样,也有二类文件组成,一是文件,又称M文件,另一类是数据文件。系统除提供了文件的一般管理功能外,还提供了对数据文件进行操作的特殊功能函数。,3.1 基本命令,1. help 帮助命令 格式: help 命令名 例如: help plot help matlabgeneral 2. what 显示目录内容命令 格式: what 目录名 例如: what matlab 显示matlab目录下的所有M-文件。,3.1 基本命令,3type 显示文件内容命令 格式: type文件名 显示M-文件的内容。 4 寻找命令 格式: lookfor 命令或字

2、符串 寻找命令或字符串是否存在。 例如: lookfor cos,3.1 基本命令,5which 寻找函数命令 格式:which 函数名 显示函数所在的文件位置,给出路径。 例如: which pinv 6 path 路径控制命令 格式: path 路径 显示或改变搜索路径。 例如: path (path,d:testaaa),3.1 基本命令,7who,whos 显示变量命令 显示当前变量。 whos命令更详细。 8 load,save 取出与保存结果命令 从磁盘上读出或保存计算结果。 例如: save test 将变量存入test.mat文件中。 例如: save test x y 仅保存

3、x ,y 变量。,3.1 基本命令,9 clear 清除变量命令 格式: 变量名 例如: clear x y 10 disp 显示文本或变量内容命令 例如:x=1 2 3 disp(x) y=aaaaaaa disp(y),3.1 基本命令,11 cd 改变目录命令 与DOS类似。 12 dir 显示目录内容命令 显示目录里的文件。 例如:dir matlabnotebook,3.1 基本命令,13delete 删除文件或对象命令 格式: delete 文件名 不能用通配符 delete(对象) 例如:H=PLOT(X,X) delete (H) 删除图形对象H,3.1 基本命令,14! 执行

4、系统命令 在Windows下运行。“!”用于执行DOS命令。 例如:!dir *.exe 显示当前目录里的EXE文件。,3.2 文件的打开与关闭,Matlab提供了对数据文件建立、打开、读、写以及关闭等一系列函数,数据文件一般存放在磁盘等介质上,用文件名标识,系统对文件名没有特殊要求。文件数据格式有二种形式,一是二进制格式文件,二是ASCII文本文件,系统对这两类文件提供了不同的读写功能函数。,3.2 文件的打开与关闭,1 fopen打开文件 在读写文件之前,必须先用fopen命令打开一个文件,并指定允许对该文件进行的操作。文件操作结束后,应及时关闭文件,以免数据的丢失或误修改。fopen函数

5、格式为: Fid= fopen(filename,permission),3.2 文件的打开与关闭,其中filename为文件名,permission为文件格式,可以是下列格式之一: r 打开文件,读数据,文件必须存在。 w 打开文件,写数据,若文件不存在,系统会自动建立。 a 打开文件,在文件末尾添加数据。 r+ 打开文件,可以读和写数据,文件必须存在。 w+ 打开文件,供读与写数据用。 a+ 打开文件,供读与添加数据用。 W 打开文件供写数据用,无自动刷新功能。 A 打开文件供添加数据用,无自动刷新功能。,3.2 文件的打开与关闭,例如:打开一个名为std.dat的数据文件并进行读操作,其

6、命令格式为: Fid=fopen( std.dat, r ) 上述打开格式均为二进制格式,如果想用ASCII文本格式,则必须在格式字符串中加上字符t,例如用r t表示以ASCII格式打开供读操作的数据文件。,3.2 文件的打开与关闭,2 fclose关闭文件 文件在进行完读、写等操作后,应及时关闭,以保证文件的安全可靠。关闭文件命令格式为: Sta=fclose(Fid) 关闭Fid所表示的文件 Sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回1。,3.3 文件的读写操作,1 二进制数据文件 fread 读二进制数据文件。格式为: A,COUNT=fread(Fid,size,p

7、recision) 其中A为数据矩阵,COUNT返回所读取的数据元素个数。size为可选项,若不选用则读取整个文件内容,若选用它的值可以是下列值:,3.3 文件的读写操作,N 读取 N个元素到一个列向量。 inf 读取整个文件。 M,N 读数据到MN的矩阵中,数据按列存放。,3.3 文件的读写操作,precision用于控制所读数据的精度格式。 缺省格式为uchar,即无符号字符格式。例如:Fid=fopen(std.dat, r); A=fread(Fid, 100, long); Sta=fclose(fid); 以读数据方式打开数据文件std.dat,并按长整型数据格式读取文件的前100

8、个数据放入向量A,然后关闭文件。,3.3 文件的读写操作,fwrite 函数以二进制格式向数据文件写数据,其格式为: COUNT=fwrite (Fid, A, precision) 例如:Fid=fopen(magic5.bin, wb); fwrite(Fid, magic, int32); 上述语句将矩阵magic中的数据写入文件magic5.bin中,数据格式为32位整型二进制格式。,3.3 文件的读写操作,【例1】建立一数据文件test.dat,用于存放矩阵A的数据。 已知 A=-0.6515 -0.2727 -0.4354 -0.3190 -0.9047 -0.7534 -0.45

9、67 -0.3212 -0.4132 -0.3583 -0.9264 -0.8173 -0.7823 -0.3265 -0.0631 -0.1735 -0.7373 -0.0972 -0.3267 -0.6298 -0.4768 -0.6773 -0.6574 -0.1923 -0.4389,3.3 文件的读写操作,Fid=fopen(test.dat, w) cnt=fwrite(Fid, A, float) fclose(Fid) 程序段将矩阵A的数据以二进制浮点数格式写入文件test.dat中。 Fid=fopen(test.dat, r) B,cnt=fread(Fid, 5,inf,

10、 float) fclose(Fid) 读取文件test.dat的内容。,3.3 文件的读写操作,2 文本文件 fscanf 读ASCII文本文件 A,COUNT= fscanf (Fid, format, size) 其中A为数据矩阵,用以存放读取的数据,COUNT返回所读取的数据元素个数。 format用以控制读取的数据格式,由%加上格式符组成,格式符为: d, i, o, u, x, e, f, g, s, c与. . .,3.3 文件的读写操作,例如: s=fscanf(fid, %s) 读取一个字符串 a=fscanf(fid, %5d) 读取5位数的整数 b= fscanf(fid

11、, %6.2d) 读取浮点数,3.3 文件的读写操作,fprintf 写ASCII数据文件,其格式为: COUNT= fprintf(Fid, format, A,) 其中A为要写入文件的数据矩阵,先按format格式化数据矩阵A,后写入到Fid所指定的文件。 例如:x = 0: 0.1: 1; y = x; exp(x); Fid = fopen(exp.txt, w); fprintf(Fid,%6.2f %12.8fn,y); fclose(Fid);,3.4 数据文件定位写操作,1.fseek函数定位文件位置指针,格式为: status=fseek(Fid, offset, origi

12、n) 其中Fid为文件句柄,offset表示位置指针相对移动的字节数,若为正整数表示向文件尾方向移动,若为负整数表示向文件头方向移动,origin表示位置指针移动的参照位置,它的取值有三种可能:cof 表示文件的当前位置,bof 表示文件的开始位置,eof 表示文件的结束位置。若定位成功status返回值为0,否则返回值为1。,3.4 数据文件定位写操作,2. ftell函数返回文件指针的当前位置。 其格式为: position=ftell (Fid) 返回值为从文件开始到指针当前位置的字节数。若返回值为1表示获取文件当前位置失败。,3.4 数据文件定位写操作,【例2】下述程序段说明了函数fs

13、eek和ftell的使用。 a=1: 5; Fid=fopen(fdat.bin, w); 以写方式打开文件fdat.bin fwrite(Fid, a, int16 ); 将a中的5个数据元素分别以 双字节整型格式写入 status=fclose(Fid); 文件fdat.bin Fid=fopen(fdat.bin, r); 以读数据方式打开文件,3.4 数据文件定位写操作,status=fseek(Fid, 6, bof); 将文件数据指针从开始位置向尾部移动6个字节 four=fread(Fid, 1, int16); 读取当前数据,即第4个数据,并移动指针到下一个数据 position=ftell(Fid); eight=fread(Fid, 1, int16); 读取第8个数据 status=fclose(Fid);,习题,1已知文件句柄为Fid,请写出完成下列操作的命令或命令序列 a 以读和写方式打开二进制格式数据文件 b 将浮点数F添加到文件尾部 c 将文件内容以浮雕点数格式读入数据 向量B,习题,2建立数据文件test.dat,要求该文件可以读、写。文件内容如下: NAME SCORE Liuqi 84.0 Zhangbin 87.5 Liping 90.0 Wangwei 78.0 Wujian 92.5 ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号