首页 > 编程笔记 > MATLAB笔记 阅读:22

MATLAB fopen()函数:打开文件(附带实例)

MATLAB 程序中对文件进行操作,无论是要读写 ASCII 码文件还是二进制文件,都必须先将其打开。

在 MATLAB 中,默认情况下,fopen() 函数用于打开文件(以二进制格式打开文件)或获得有关打开文件的信息,它的调用格式及说明如下表所示。

表:fopen() 函数调用格式及说明
调用格式 说明
fileID = fopen(filename) 打开文件名为 filename 的文件,以二进制读取形式进行访问,并返回等于或大于 3 的整数文件标识符。MATLAB 保留文件标识符 0、1 和 2 分别用于标准输入、标准输出(屏幕)和标准错误
fileID = fopen(filename,permission) permission 指定访问类型的文件,如表 11-18 所示
fileID = fopen(filename,permission, machinefmt, encodingIn) 使用 machinefmt 参数另外指定在文件中读写字节或位时的顺序,如表 11-19 所示。可选的 encodingIn 参数指定与文件相关联的字符编码方案,如表 11-20 所示
[fileID,errmsg] = fopen('...') 如果 fopen 打开文件失败,返回一条因系统而异的错误消息;否则,返回空字符串向量 errmsg
fIDs = fopen('all') 返回包含所有打开文件的文件标识符的行向量。向量中元素的数量等于打开文件的数量
filename = fopen(fileID) 返回上一次调用 fopen 在打开 fileID 指定的文件时所使用的文件名。输出文件名将解析到完整路径
[filename,permission,machinefmt, encodingOut] = fopen(fileID) 返回上一次调用 fopen 在打开指定文件时所使用的权限、计算机格式以及编码。如果是以二进制格式打开的文件,则 permission 会包含字母 b。encodingOut 输出是一个标准编码方案名称

这里需要强调的是,如果 fopen() 无法打开文件,则 fileID 为 -1。

表:permission文件访问类型变量及说明
符号变量 说明
r 打开要读取的文件
w 打开或创建要写入的新文件。放弃现有内容(如果有)
a 打开或创建要写入的新文件。追加数据到文件末尾
r+ 打开要读写的文件
w+ 打开或创建要读写的新文件。放弃现有内容(如果有)
a+ 打开或创建要读写的新文件。追加数据到文件末尾
A 打开文件以追加(但不自动刷新)当前输出缓冲区
W 打开文件以写入(但不自动刷新)当前输出缓冲区

如果要以文本格式打开文件,需要注意下面几点:
如果不指定编码方案,fopen() 将使用系统的默认编码方案打开文件并进行处理。在 MATLAB 中写入文件,则以文本模式打开或创建新文件,然后在记事本或不会将 \n 识别为换行符序列的任意文本编辑器中打开该文件。写入文件时,用 \r\n 结束每行。

表:machinefmt读取或写入字节或位的顺序变量
符号变量 说明
n 或 native 系统字节排序方式(默认)
b 或 ieee-be Big-endian 排序
l 或 ieee-le Little-endian 排序
s 或 ieee-be,164 Big-endian 排序,64 位长数据类型
a 或 ieee-le,164 Little-endian 排序,64 位长数据类型

默认情况下,对新建的文件使用 little-endian 排序方式进行排序,现有二进制文件可以使用 big-endian 或 little-endian 排序方式。

表:encodingIn字符编码方案名称
符号变量 说明 适用范围
Big5 ISO-8859-1 windows-874
Big5-HKSCS ISO-8859-2 windows-949
CP949 ISO-8859-3 windows-1250
EUC-KR ISO-8859-4 windows-1251
EUC-JP ISO-8859-5 windows-1252
EUC-TW ISO-8859-6 windows-1253
GB18030 ISO-8859-7 windows-1254
GB2312 ISO-8859-8 windows-1255
GBK ISO-8859-9 windows-1256
IBM866 ISO-8859-11 windows-1257
KOI8-R ISO-8859-13 windows-1258
KOI8-U ISO-8859-15 US-ASCII
  Macintosh UTF-8
  Shift_JIS  

【实例】在当前路径下创建文件夹并关闭。MATLAB 程序如下:
>> close all                          % 关闭当前已打开的文件
>> clear                              % 清除工作区的变量
>> fileID = fopen('mytxt.txt','w');   % 创建并打开新文件mytxt.txt
>> fclose(fileID);                    % 关闭该文件

相关文章