nullnull第三讲文件操作nullMatlab环境下的文件与其它系统一样,也有二类文件组成,一是文件,又称M文件,另一类是数据文件。系统除提供了文件的一般管理功能外,还提供了对数据文件进行操作的特殊功能函数。3.1 基本命令3.1 基本命令1. help 帮助命令
格式: help 命令名
例如: help plot
help demos
2. what 显示目录内容命令
格式: what [目录名]
例如: what demos
显示demos目录下的所有M(MAT)-文件。
[路径 :C:\Program Files\MATLAB71\toolbox\matlab\demos]3.1 基本命令3.1 基本命令3.type 显示文件内容命令
格式: type +文件名
显示M-文件的内容。
例如: type aaa(.m)
4. 寻找命令
格式: lookfor 命令或字符串
寻找命令或字符串是否存在。
例如: lookfor cos3.1 基本命令3.1 基本命令5.which 寻找函数命令
格式:which 函数名
显示函数所在的文件位置,给出路径。
例如: which pinv(.m)
which aaa (.m)
6 .path 路径控制命令
格式: path [路径]
显示或改变搜索路径。
例如: path(path,‘d:\test’) %添加test文件夹路径 ,可在菜单中查看到。3.1 基本命令3.1 基本命令7.who,whos 显示变量命令
显示当前变量。 whos命令更详细。
8 .load,save 取出与保存结果命令
从磁盘上读出或保存计算结果。
例如: save test
将变量存入test.mat文件中。
例如: save test x y 仅保存x ,y 变量。
save test x y -ascii通常,save命令加ascii选项后只将各变量的值不加区别的存储的存放到我们所指定的文件中,而并没有一个可供识别的文件头或变量分类信息,于是在重新用load载入的时候,只将文件中的值作为一个变量的值进行载入,而且是以文件名为变量名进行载入。3.1 基本命令3.1 基本命令9 .clear 清除变量命令
格式: [变量名]
例如: clear x y
10 .disp 显示文本或变量内容命令
例如:x=[1 2 3]
disp(x)
yy='aaa'
disp(y)3.1 基本命令3.1 基本命令11 .cd 改变目录命令
与DOS类似。
例:cd('C:\Program Files\MATLAB71')
12 .dir 显示目录内容命令
显示目录里的文件。
例如:dir('C:\Program Files\MATLAB71')3.1 基本命令3.1 基本命令13.delete 删除文件或对象命令
格式: delete 文件名 不能用通配符
delete(对象)
例如:H=plot(X,X)
delete (H)
删除图形对象H,但不是图形窗口null14. ginput函数
MATLAB里面用ginput函数取n点 的坐标数据x,y。
格式 : [x,y] = ginput(n) 例:
>> x=0:10;
>> y=2*x;
>> plot(x,y)
[x,y] = ginput(10)3.2 文件的打开与关闭3.2 文件的打开与关闭Matlab提供了对数据文件建立、打开、读、写以及关闭等一系列函数,数据文件一般存放在磁盘等介质上,用文件名标识,系统对文件名没有特殊要求。文件数据格式有二种形式,一是二进制格式文件,二是ASCII文本文件,系统对这两类文件提供了不同的读写功能函数。
3.2 文件的打开与关闭3.2 文件的打开与关闭1 fopen打开文件
在读写文件之前,必须先用fopen命令打开一个文件,并指定允许对该文件进行的操作。文件操作结束后,应及时关闭文件,以免数据的丢失或误修改。fopen函数格式为:
Fid= fopen(filename)
Fid= fopen(filename,permission)返回值情况3.2 文件的打开与关闭3.2 文件的打开与关闭 其中filename为文件名,permission为文件格式,可以是下列格式之一:
‘r’ 打开文件,读数据,文件必须存在。
‘w’ 打开文件,写数据,若文件不存在,系统会自动建立。
‘a’ 打开文件,在文件末尾添加数据。
‘r+’ 打开文件,可以读和写数据,文件必须存在。
‘w+’ 打开文件,供读与写数据用。
‘a+’ 打开文件,供读与添加数据用。
‘W’ 打开文件供写数据用,无自动刷新功能。
‘A’ 打开文件供添加数据用,无自动刷新功能。3.2 文件的打开与关闭3.2 文件的打开与关闭例如:打开一个数据文件并进行读操作,其命令格式为:
Fid=fopen( ‘a.txt’, ’r’ )
上述打开格式为ASCII格式
Fid=fopen( ‘b.dat’, ’r’ )
打开格式为二进制格式
3.2 文件的打开与关闭3.2 文件的打开与关闭2 fclose关闭文件
文件在进行完读、写等操作后,应及时关闭,以保证文件的安全可靠。关闭文件命令格式为:
Sta=fclose(Fid) 关闭Fid所
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示的文件
Sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。
3.3 文件的读写操作3.3 文件的读写操作fwrite 函数以二进制格式向数据文件写数据,其格式为:
N=fwrite (Fid, A, precision)
例如:Fid=fopen(‘a.txt’, ‘wb’);
fwrite(Fid, magic, ’float’);
上述语句将矩阵magic中的数据写入文件a.txt中,数据格式为32位浮点型二进制格式。1 二进制数据文件>> A=[1.1 2.2 3.3 4.4 5.5 6.6];
>> Fid=fopen('a.txt', 'wb')
>> fwrite(Fid,A,'float')
>> fclose(Fid)3.3 文件的读写操作3.3 文件的读写操作fread 读二进制数据文件。格式为:
A = fread(fid)
A = fread(fid, count)
A = fread(fid, count, precision)
其中A为数据矩阵,count返回所读取的数据元素个数。>> fp=fopen('a.txt','r')
>> B=fread(fp,[1 4],'float') %1行4列
>> fclose(fp)frewind(fid)[2 4]代表2行4列
B =
1.1000 3.3000 5.5000
2.2000 4.4000 6.60003.3 文件的读写操作3.3 文件的读写操作precision用于控制所读数据的精度格式。
缺省格式为uchar,即无符号字符格式。
>> help fread3.3 文件的读写操作3.3 文件的读写操作【例】建立一数据文件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]3.3 文件的读写操作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的内容。returns the data read from the file in B,
and the number of elements successfully read in cnt.[10,inf]
[2,3]inf : reads to the end of the file3.3 文件的读写操作3.3 文件的读写操作2 文本文件fprintf 写ASCII数据文件,其格式为:
N= fprintf(Fid, format, A)
其中A为要写入文件的数据矩阵,先按format格式化数据矩阵A,后写入到Fid所指定的文件。
例如: x = 0: 0.1: 1;
Fid = fopen('a.txt', 'w');
N=fprintf(Fid, 'The number is: %g\n',x);
fclose(Fid);nullfscanf 读ASCII文本文件
A = fscanf(fid, format)
[A,COUNT]= fscanf (Fid, format, size)
其中A为数据矩阵,用以存放读取的数据,COUNT返回所读取的数据元素个数。
format用以控制读取的数据格式,由%加上格式符组成,格式符为:
d, i, o, u, x, e, f, g, s, c与[. . .] help fscanf例如: Fid = fopen('a.txt', 'r')
A=fscanf(Fid,'%c')3.4 数据文件定位写操作3.4 数据文件定位写操作1.fseek函数定位文件位置指针,格式为:
status=fseek(Fid, offset, origin)
其中Fid为文件句柄,offset表示位置指针相对移动的字节数,若为正整数表示向文件尾方向移动,若为负整数表示向文件头方向移动,origin表示位置指针移动的参照位置,它的取值有三种可能:’cof ’表示文件的当前位置,’bof ’表示文件的开始位置,’eof ’表示文件的结束位置。若定位成功status返回值为0,否则返回值为–1。fid = fopen('a.txt', 'r+')
fseek(fid, 3, ‘bof’) %跳过3个字节
N=fprintf(Fid, 'The number is: %g\n',22)
fclose(Fid);3.4 数据文件定位写操作3.4 数据文件定位写操作2. ftell函数返回文件指针的当前位置。
其格式为:
position=ftell (Fid)
返回值为从文件开始到指针当前位置的字节数。若返回值为–1表示获取文件当前位置失败。前面返回的position=33.4 数据文件定位写操作3.4 数据文件定位写操作【例】下述程序段说明了函数fseek和ftell的使用。
a=[1: 5];
Fid=fopen(‘fdat.bin’, ‘w’); 以写方式打开文件fdat.bin
fwrite(Fid, a, ‘int16’ ); 将a中的5个数据元素分别以 双字节(16bit)整型格式写入
status=fclose(Fid); 文件fdat.bin
Fid=fopen(‘fdat.bin’, ‘r’); 以读数据方式打开文件3.4 数据文件定位写操作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
… …