第三讲文件操作
Matlab环境下的文件与其它系统一样,也有二类文件组成,一是文件,又称M文件,另一类是数据文件。系统除提供了文件的一般管理功能外,还提供了对数据文件进行操作的特殊功能函数。
3.1 基本命令
1. help 帮助命令
格式:help 命令名
例如: help plot
help matlab\general
2. what 显示目录内容命令
格式:what [目录名]
例如:: what matlab
显示matlab目录下的所有M-文件。
3.1 基本命令
3.type 显示文件内容命令
格式: type文件名
显示M-文件的内容。
4.寻找命令
格式: lookfor 命令或字符串寻找命令或字符串是否存在。例如:lookfor cos
3.1 基本命令
5.which 寻找函数命令
格式:which 函数名
显示函数所在的文件位置,给出路径。例如:which pinv
6 .path 路径控制命令
格式:path [路径]
显示或改变搜索路径。
例如:path (path,‘d:\test\aaa’)
3.1 基本命令
7.who,whos 显示变量命令
显示当前变量。whos命令更详细。
8 .load,save 取出与保存结果命令
从磁盘上读出或保存计算结果。
例如:save test
将变量存入test.mat文件中。
例如:save test x y 仅保存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 \matlab\notebook
3.1 基本命令
13.delete 删除文件或对象命令
格式:delete 文件名不能用通配符delete(对象)
例如:H=PLOT(X,X)
delete (H)
删除图形对象H
3.1 基本命令
14.!执行系统命令
在Windows下运行。“!”用于执行DOS命令。
例如:!dir *.exe
显示当前目录里的EXE文件。
3.2 文件的打开与关闭
Matlab提供了对数据文件建立、打开、读、写以及关闭等一系列函数,数据文件一般存放在磁盘等介质上,用文件名标识,系统对文件名没有特殊要求。文件数据格式有二种形式,一是二进制格式文件,二是ASCII文本文件,系统对这两类文件提供了不同的读写功能函数。
3.2 文件的打开与关闭
1 fopen打开文件
在读写文件之前,必须先用fopen命令打开一个文件,并指定允许对该文件进行的操作。文件操作结束后,应及时关闭文件,以免数据的丢失或误修改。fopen函数格式为:
Fid=fopen(filename,permission)
3.2 文件的打开与关闭
其中filename为文件名,permission为文件格式,可以是下列格式之一:
?‘r’ 打开文件,读数据,文件必须存在。
?‘w’ 打开文件,写数据,若文件不存在,系统会自动建立。
?‘a’ 打开文件,在文件末尾添加数据。
?‘r+’ 打开文件,可以读和写数据,文件必须存在。
?‘w+’ 打开文件,供读与写数据用。
?‘a+’ 打开文件,供读与添加数据用。
?‘W’ 打开文件供写数据用,无自动刷新功能。
?‘A’ 打开文件供添加数据用,无自动刷新功能。
3.2 文件的打开与关闭
例如:打开一个名为std.dat的数据文件并进行读操作,其命令格式为:
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,precision)
其中A为数据矩阵,COUNT返回所读取的数据元素个数。size为可选项,若不选用则读取整个文件内容,若选用它的值可以是下列值:
3.3 文件的读写操作
N 读取N个元素到一个列向量。inf 读取整个文件。
[M,N] 读数据到M×N的矩阵中,数据按列存放。
3.3 文件的读写操作
precision用于控制所读数据的精度格式。
缺省格式为uchar,即无符号字符格式。
例如:Fid=fopen(‘std.dat’,‘r’);
A=fread(Fid,100,’long’);
Sta=fclose(fid);
以读数据方式打开数据文件std.dat,并按长整型数据格式读取文件的前100个数据放入向量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.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]