MATLAB 文件操作

文件操作是一种数据输入输出方式,即从数据文件中读取数据或将结果写入数据文件。

MATLAB 提供了一系列底层输入输出函数,专门用于文件操作,包括fopen、fclose、fprintf、fscanf等。

 

1 文件的打开与关闭

对文件进行读或写操作,首先需要打开文件;对文件操作完成后,为了保证文件内容的安全,必须要关闭文件。

1. 打开文件

文件在读写之前,需要先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。

fopen 调用格式为:

fid=fopen('文件名', '打开方式')

说明:fid 用于存储文件句柄,如果返回的句柄值大于 0,则说明文件打开成功;若返回的句柄值为 0,则表示打开文件失败。

 

常见的文件打开方式有如下:

说明:在上述所有打开方式字符串后面添加一个 “t”,则表示以文本格式打开;添加一个 “b”,则表示以二进制格式打开。

 

示例:

 

上述示例中,fopen的返回值均大于 0,说明文件打开成功。

如果要打开所有文件,则使用命令fopen(‘all’),返回所有打开文件的标识。

 

2. 关闭文件

当文件进行完读、写等操作后,应及时关闭文件,以免数据丢失。

关闭文件用 flcose 函数,具体调用格式如下:

sta=fclose(fid)

说明:sta 表示关闭文件操作的返回值,若关闭成功,返回 0;否则,返回 -1。

 

示例:

如果要关闭所有打开的文件,则用命令 fclose('all'),返回所有关闭文件的标识。

 

2 二进制文件的读写操作

1. 写二进制文件

fwrite 函数按照指定的数据精度将矩阵中的元素写入到文件中,调用格式如下:

COUNT=fwrite(fid, A, precision) 

其中,COUNT 为返回所写的数据元素个数(可缺省);fid 为文件句柄;A 用来存放写入文件的数据。

precision 代表数据精度,常见的有 char、uchar、int、long、float、double等,默认为 uchar。

 

2. 读二进制文件

fread 函数可以读取二进制文件的数据,并将数据写入矩阵,调用格式如下:

[A, COUNT]=fread(fid, size, precision)

其中,A 为读取的数据矩阵;COUNT 为返回所读取的数据元素个数;fid 为文件句柄;size 为可选项,若不选用,则表示读取整个文件内容,若选用size,则可设置为 N(读取N个元素到一个列向量)、inf(读取整个文件)、[M, N](读M行N列的数据到MxN的矩阵中,数据按列存放);precision 用于控制所写的数据的精度,其形式与 fwrite 函数相同。

 

示例:

创建一个3x3矩阵 a,并将其写入 test 文件中,如下:

 

在以只读方式打开该文件,并读取 5 个元素,如下:

 

3 文本文件的读写操作

1. 读文本文件

fscanf 函数可以读取文本文件的内容,并按指定格式存入矩阵,调用格式如下:

[A, COUNT]=fscanf(fid,format,size)

其中,A 为读取的数据;COUNT 为返回所读取的数据元素的个数;fid 为文件句柄;format 用来控制读取的数据格式,由%加上格式符组成,常见的格式符有 d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等;size 为可选项,与 fread 函数相同。

 

2. 写文本文件

fprintf 函数可以将数据按指定格式写入到文本文件中,调用格式如下:

fprintf(fid, format, A)

其中,format 控制所写数据的格式;A 用来存放数据的矩阵。

 

posted on 2020-04-21 14:15  躬耕南阳  阅读(563)  评论(0编辑  收藏  举报

导航