admin管理员组

文章数量:1794759

MATLAB文件操作

MATLAB文件操作

目录
  • 一、文件打开与关闭
    • 1、fopen函数
    • 2、fclose函数
  • 二、文本文件的读写
    • 1、fscanf函数和fprintf函数
    • 2、案例1
  • 三、二进制文件的读写
    • 1、fread函数和fwrite函数
    • 2、案例2
  • 四、数据文件定位
    • 1、fseek函数
    • 2、ftell函数
    • 3、feof函数
    • 4、案例3
  • 参考资料

一、文件打开与关闭 1、fopen函数

用于打开文件,其调用格式为: fid = fopen(filename,permission); 其中, fid为文件识别号,打开文件成功时,fid返回一整数,用来标识该文件;打开文件不成功时,fid值为-1。 filename:待操作的文件名; permission:对文件的允许使用方式。 文件的使用方式如下: • ‘r’: 以读方式打开一个文件; • ‘w’: 以写方式打开一个文件; • ‘a’: 在该文件尾添加数据; • ‘r+’: 以读和写方式打开一个文件; • ‘w+’:打开或创建用于读写的文件,覆盖已有的内容; • ‘a+’: 以追加的方式读写文件。

2、fclose函数

用于关闭已打开的文件,其调用格式为: status = fclose(fid); fid是要关闭文件的标识号。如果fid为all,则关闭所有已打开的文件,但标准文件除外,即屏幕、键盘。返回 0 表示关闭成功,返回-1则表示关闭不成功。

注意:fopen与fclose要同时出现在一个程序中,即打开一个文件,操作完毕后需要关闭该文件。

二、文本文件的读写 1、fscanf函数和fprintf函数

fscanf函数用于读取文本文件的内容,fprintf函数用于将数据写入文本文件中。 调用格式为: [A, count] = fscanf(fid, fmt, size); count = fprintf(fid, fmt, A); 其中,A用于存放读写的数据,count返回成功读写的数据元素个数;参数fid为文件标识号,fmt用以控制读取的数据格式,size用于指定A的大小。 fmt由%加上格式符组成,常见的数值格式控制符如下: • ‘%d’: 整数; • ‘%f’:小数形式的实数; • ‘%e’:科学计数法形式的实数; • ‘%c’:字符; • ‘%s’: 字符串; 在%之后还可以加上数据宽度。 size可取值: • n: 指定读取n个数据; • Inf:指定读取文件中的所有数据; • [m,n]:指定读取m× n个数据,数据按列顺序存放到矩阵A。

2、案例1 例1 文件“观测记录.txt”的内容如图所示,读取文件前10行的数据。 fid=fopen('观测记录.txt','r'); title=fscanf(fid,'%s',6); qxsj=[]; for i=1:10 qxsj{i,1}=fscanf(fid,'%s',1); qxsj{i,2}=fscanf(fid,'%s',1); qxsj{i,3}=fscanf(fid,'%f',1); qxsj{i,4}=fscanf(fid,'%f',1); qxsj{i,5}=fscanf(fid,'%f',1); qxsj{i,6}=fscanf(fid,'%s',1); end fclose(fid);

三、二进制文件的读写 1、fread函数和fwrite函数

fread函数用于读取二进制文件,fwrite函数将数据写入文件。 调用格式为: [A, count] = fread(fid, size, precision, skip); count = fwrite(fid,A,precision); 其中,A用于存放读写的数据,count返回读写成功的数据个数。fid为文件识别号,precision指定读写数据的类型,size用于指定A的大小,skip指定按比例周期性地跳过一些数据。

2、案例2 例2 计算y=exp(x)sinx,其中x∈[0,2π]。将x、y写入二进制文件“模拟数据.dat”。 fid=fopen('模拟数据.dat','w'); x=linspace(0,2*pi,100); y=exp(x).*sin(x); count=fwrite(fid, [x; y], 'double'); fclose(fid); 四、数据文件定位 1、fseek函数

该函数用于改变文件位置指针的位置,其调用格式为: fseek(fid, offset, origin); 其中参数fid为文件识别号,offset表示位置指针相对移动的字节数;origin表示位置指针移动的参照位置。 origin的可取值: • 'cof '或0:表示文件指针的当前位置; • 'bof '或-1:表示文件的开始位置; • 'eof’或1:表示文件的结束位置。

2、ftell函数

用于查询文件指针的当前位置,其调用格式为: position = ftell(fid); 返回值为从文件头到指针当前位置的字节数。若返回值为-1,表示获取文件当前位置失败。

3、feof函数

用于判断当前的文件位置指针是否到达文件尾部,其调用格式为: status = feof(fid); 当到达文件结束位置时,返回值为1,否则为0。

4、案例3 例3 读取例2生成的文件中的后40组数据,并绘制图形。 fid=fopen('模拟数据.dat','r'); status=fseek(fid, -40*2*8, 'eof'); x=[]; y=[]; while ~feof(fid) x=[x; fread(fid,1,'double')]; y=[y; fread(fid,1,'double')]; end plot(x,y); fclose(fid); 参考资料

科学计算与MATLAB语言

本文标签: 操作文件MATLAB