1 / 30

第三讲文件操作

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

anoush
Download Presentation

第三讲文件操作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三讲文件操作

  2. Matlab环境下的文件与其它系统一样,也有二类文件组成,一是文件,又称M文件,另一类是数据文件。系统除提供了文件的一般管理功能外,还提供了对数据文件进行操作的特殊功能函数。Matlab环境下的文件与其它系统一样,也有二类文件组成,一是文件,又称M文件,另一类是数据文件。系统除提供了文件的一般管理功能外,还提供了对数据文件进行操作的特殊功能函数。

  3. 3.1 基本命令 1. help 帮助命令 格式: help 命令名 例如: help plot helpmatlab\general 2. what 显示目录内容命令 格式: what [目录名] 例如:: what matlab 显示matlab目录下的所有M-文件。

  4. 3.1 基本命令 3.type 显示文件内容命令 格式: type文件名 显示M-文件的内容。 4. 寻找命令 格式: lookfor 命令或字符串 寻找命令或字符串是否存在。 例如: lookfor cos

  5. 3.1 基本命令 5.which 寻找函数命令 格式:which 函数名 显示函数所在的文件位置,给出路径。 例如: which pinv 6 .path 路径控制命令 格式: path [路径] 显示或改变搜索路径。 例如: path (path,‘d:\test\aaa’)

  6. 3.1 基本命令 7.who,whos 显示变量命令 显示当前变量。 whos命令更详细。 8 .load,save 取出与保存结果命令 从磁盘上读出或保存计算结果。 例如: save test 将变量存入test.mat文件中。 例如: save test x y 仅保存x ,y 变量。

  7. 3.1 基本命令 9 .clear 清除变量命令 格式: [变量名] 例如: clear x y 10 .disp 显示文本或变量内容命令 例如:x=[1 2 3] disp(x) y=‘aaaaaaa’ disp(y)

  8. 3.1 基本命令 11 .cd 改变目录命令 与DOS类似。 12 .dir 显示目录内容命令 显示目录里的文件。 例如:dir \matlab\notebook

  9. 3.1 基本命令 13.delete 删除文件或对象命令 格式: delete 文件名 不能用通配符 delete(对象) 例如:H=PLOT(X,X) delete (H) 删除图形对象H

  10. 3.1 基本命令 14.! 执行系统命令 在Windows下运行。“!”用于执行DOS命令。 例如:!dir *.exe 显示当前目录里的EXE文件。

  11. 3.2 文件的打开与关闭 Matlab提供了对数据文件建立、打开、读、写以及关闭等一系列函数,数据文件一般存放在磁盘等介质上,用文件名标识,系统对文件名没有特殊要求。文件数据格式有二种形式,一是二进制格式文件,二是ASCII文本文件,系统对这两类文件提供了不同的读写功能函数。

  12. 3.2 文件的打开与关闭 1 fopen打开文件 在读写文件之前,必须先用fopen命令打开一个文件,并指定允许对该文件进行的操作。文件操作结束后,应及时关闭文件,以免数据的丢失或误修改。fopen函数格式为: Fid= fopen(filename,permission)

  13. 3.2 文件的打开与关闭 其中filename为文件名,permission为文件格式,可以是下列格式之一: • ‘r’ 打开文件,读数据,文件必须存在。 • ‘w’ 打开文件,写数据,若文件不存在,系统会自动建立。 • ‘a’ 打开文件,在文件末尾添加数据。 • ‘r+’ 打开文件,可以读和写数据,文件必须存在。 • ‘w+’ 打开文件,供读与写数据用。 • ‘a+’ 打开文件,供读与添加数据用。 • ‘W’ 打开文件供写数据用,无自动刷新功能。 • ‘A’ 打开文件供添加数据用,无自动刷新功能。

  14. 3.2 文件的打开与关闭 例如:打开一个名为std.dat的数据文件并进行读操作,其命令格式为: Fid=fopen( ‘std.dat’, ’r’ ) 上述打开格式均为二进制格式,如果想用ASCII文本格式,则必须在格式字符串中加上字符t,例如用’r t’表示以ASCII格式打开供读操作的数据文件。

  15. 3.2 文件的打开与关闭 2 fclose关闭文件 文件在进行完读、写等操作后,应及时关闭,以保证文件的安全可靠。关闭文件命令格式为: Sta=fclose(Fid) 关闭Fid所表示的文件 Sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。

  16. 3.3 文件的读写操作 1 二进制数据文件 fread 读二进制数据文件。格式为: [A,COUNT]=fread(Fid,size,precision) 其中A为数据矩阵,COUNT返回所读取的数据元素个数。size为可选项,若不选用则读取整个文件内容,若选用它的值可以是下列值:

  17. 3.3 文件的读写操作 N 读取 N个元素到一个列向量。 inf 读取整个文件。 [M,N] 读数据到M×N的矩阵中,数据按列存放。

  18. 3.3 文件的读写操作 precision用于控制所读数据的精度格式。 缺省格式为uchar,即无符号字符格式。例如:Fid=fopen(‘std.dat’, ‘r’); A=fread(Fid, 100, ’long’); Sta=fclose(fid); 以读数据方式打开数据文件std.dat,并按长整型数据格式读取文件的前100个数据放入向量A,然后关闭文件。

  19. 3.3 文件的读写操作 fwrite 函数以二进制格式向数据文件写数据,其格式为: COUNT=fwrite (Fid, A, precision) 例如:Fid=fopen(‘magic5.bin’, ‘wb’); fwrite(Fid, magic, ’int32’); 上述语句将矩阵magic中的数据写入文件magic5.bin中,数据格式为32位整型二进制格式。

  20. 3.3 文件的读写操作 【例1】建立一数据文件test.dat,用于存放矩阵A的数据。 已知 A=[-0.6515 -0.2727 -0.4354 -0.3190 -0.9047 -0.7534 -0.4567 -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]

  21. 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], ‘float’) fclose(Fid) 读取文件test.dat的内容。

  22. 3.3 文件的读写操作 2 文本文件 fscanf读ASCII文本文件 [A,COUNT]= fscanf (Fid, format, size) 其中A为数据矩阵,用以存放读取的数据,COUNT返回所读取的数据元素个数。 format用以控制读取的数据格式,由%加上格式符组成,格式符为: d, i, o, u, x, e, f, g, s, c与[. . .]

  23. 3.3 文件的读写操作 例如: s=fscanf(fid, ‘%s’) 读取一个字符串 a=fscanf(fid, ‘%5d’) 读取5位数的整数 b= fscanf(fid, ‘%6.2d’) 读取浮点数

  24. 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.8f\n',y); fclose(Fid);

  25. 3.4 数据文件定位写操作 1.fseek函数定位文件位置指针,格式为: status=fseek(Fid, offset, origin) 其中Fid为文件句柄,offset表示位置指针相对移动的字节数,若为正整数表示向文件尾方向移动,若为负整数表示向文件头方向移动,origin表示位置指针移动的参照位置,它的取值有三种可能:’cof ’表示文件的当前位置,’bof ’表示文件的开始位置,’eof ’表示文件的结束位置。若定位成功status返回值为0,否则返回值为–1。

  26. 3.4 数据文件定位写操作 2. ftell函数返回文件指针的当前位置。 其格式为: position=ftell (Fid) 返回值为从文件开始到指针当前位置的字节数。若返回值为–1表示获取文件当前位置失败。

  27. 3.4 数据文件定位写操作 【例2】下述程序段说明了函数fseek和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’); 以读数据方式打开文件

  28. 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);

  29. 习题 1.已知文件句柄为Fid,请写出完成下列操作的命令或命令序列 a 以读和写方式打开二进制格式数据文件 b 将浮点数F添加到文件尾部 c 将文件内容以浮雕点数格式读入数据 向量B

  30. 习题 2.建立数据文件test.dat,要求该文件可以读、写。文件内容如下: NAME SCORE Liuqi 84.0 Zhangbin 87.5 Liping 90.0 Wangwei 78.0 Wujian 92.5 ……

More Related