0%

MATLAB之文件操作

本节主要介绍了MATLAB中基本的文件操作方法,包括文本文件的读写、二进制文件的读写、数据文件定位等。

文件打开与关闭

1.fopen函数

  • fid=fopen(filename,permission)
  • filename为待操作的文件名
  • permission为对文件的允许使用方式
    • 'r':以读方式打开一个文件
    • 'w':以写方式打开一个文件
    • 'a':在该文件尾添加数据
    • 'r+':以读和写方式打开一个文件
  • fid为文件识别号,打开文件成功时,fid返回一整数,用来标识该文件;打开文件不成功时,fid值为-1

2.fclose函数

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

文本文件的读写

1.fscanf函数

  • [A,count]=fscanf(fid,fmt,size)
  • fscanf函数用于读取文本文件的内容
  • A用于存放读写的数据
  • count返回成功读写的数据元素个数
  • fid为文件标识号
  • fmt用于控制读取的数据格式
    • '%d':整数
    • '%f':浮点数
    • '%c':字符
    • '%s':字符串
    • 要指定一次读取的最大位数或文本字符数,请在百分比符号后插入数字。例如,%10c 一次最多读取 10 个字符,包括空白。%4f 一次最多读取 4 位数,包括小数点
  • size用于指定A的大小
    • n:指定读取n个数据
    • Inf:指定读取到文件末尾
    • [m,n]:指定读取$m\times n$个数据,数据按列顺序存放到矩阵A

2.fprintf函数

  • count=fprintf(fid,fmt,A)

3.简单示例

image-20221119212512297

结果如下:

image-20221119212619440


二进制文件的读写

1.fread函数

  • [A,count]=fread(fid,size,precision,skip)
  • fread函数用于读取二进制文件
  • A用于存放读写的数据
  • count返回成功读写的数据元素个数
  • fid为文件标识号
  • size用于指定A的大小
  • precision指定读写数据的类型
  • skip指定按比例周期性地跳过一些数据

2.fwrite函数

  • count=fwrite(fid,A,precision)
1
2
3
4
5
6
%计算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表示位置指针移动的参照位置
    • 'cof':或0表示文件指针的当前位置
    • 'bof':或-1表示文件的开始位置
    • 'eof':或1表示文件的结束位置

2.ftell函数

  • position=ftell(fid)
  • 用于查询文件指针的当前位置
  • 返回值为文件头到指针当前位置的字节数,若返回值为-1则表示获取文件当前位置失败

3.feof函数

  • status=feof(fid)
  • 用于判断当前的文件位置是否到达文件尾部
  • 当到达文件结束位置时,返回值为1,否则为0

image-20221119215827606

欢迎来到ssy的世界