本节主要介绍了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.简单示例
结果如下:
二进制文件的读写
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 | %计算y=exp(x)sinx,其中x∈[0,2π]。将x、y写入二进制文件"模拟数据.dat”。 |
数据文件定位
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