在MATLAB读写文件常用到的函数:
fopen 打开文件,或者获取打开文件的信息;
fclose 关闭打开的文件;
fgetl 读入一行,忽略换行符;
fgets 读入一行,直到换行符;
fread 从文件中读取二进制数据;
fwrite 向文件中写入数据;
fscanf 格式化读入;
fprintf 格式化输入数据到文件;
打开文件:先用fopen函数打开文件,并指定对该文件进行的操作方式。
fopen函数的调用格式为:fid=fopen(文件名,‘打开方式’);
其中fid文件句柄值,如果返回的句柄值大于0,则说明文件打开成功,常见的打开方式如下:
‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
floase,调用格式为:sta=fclose(fid);fid是想要关闭的文件的句柄。
fread:fread函数可以读取二进制文件的数据,并将数据存入矩阵。
其调用格式为:A = fread(fid, count, precision);
说明:其中A是用于存放数据、fid是文件的句柄,count是读取的文件个数precision是精度表示以什么格式的数据类型读取数据。fwrite函数与fread函数相似。
fscanf:常用的形式是data = fscanf(fid,format,size);data保存数据,fid是文件句柄,format是读取的格式和C语言差不多,size是读取的个数可以是单个的数,也可以是[m n]的向量,表示m行n列;当使用[m n]的时候,在读取时会先满足m行,在满足n列。如果文件中有三个数1,2,3;读取的代码是:b
= fscanf(fid,'%d',[3,2]);那b中的b(1,1) = 1,b(2,1) = 2;b(3,1) = 3;大概就是优先满足m行然后依次填充n列,所以在使用的时候要稍微注意可能会得到不是预期的答案。
fprintf:常用的形式是fprintf(fid,format,data);data是要输入的数据,fid是文件句柄,format和fscanf的一样。
fgetl:常用于读取一条字符串,fgetl(fid),功能是读取一行舍弃换行符,读取之后是字符串;如果想要得到数字可以使用str2num转换;
fgets:常用于读取一条字符串,fgets(fid),功能是读取一行包含换行符,读取之后是字符串;结尾多了两个字符,一个是回车符一个是换行符;如果想要得到数字可以使用str2num转换;
Mark 2015,12,24