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

MATLAB frewind()、ftell()和fseek()的用法(附带实例)

在 MATLAB 中,包含基于位置信息对文件进行操作控制的函数,用于实现文件内移动的功能。

MATLAB frewind()函数

在 MATLAB 中,frewind() 函数用于将文件位置指示器移动到打开文件的开头。

frewind() 函数的调用格式及说明如下表所示:

表:frewind() 函数调用格式及说明
调用格式 说明
frewind(fileID) 将文件位置指针设置到文件的开头

【实例 1】移动文件位置指针示例。在 MATLAB 命令行窗口中输入如下命令:
>> close all                              % 关闭当前已打开的文件
>> clear                                  % 清除工作区的变量
>> fid = fopen('stars.txt')               % 打开文件
fid =
    3
>> fgetl(fid)                             % 使用 fgetl 读取文件的第1行
ans =
    'Ah! why, because the dazzling sun'
>> fgetl(fid)                             % 读取文件的第2行
ans =
   'Restored our Earth to joy,'
>> fgetl(fid)                             % 读取文件的第3行
ans =
   'Have you departed, every one,'
>> frewind(fid)                           % 将文件位置指针设置到文件的开头
>> fgetl(fid)                             % 读取文件
ans =
    'Ah! why, because the dazzling sun'  % 读取文件第1行
>> fclose(fid);                           % 关闭文件

MATLAB ftell()函数

在 MATLAB 中,ftell() 函数用于将文件位置指示器移动到打开文件中的当前位置。

ftell() 函数的调用格式及说明如下表所示:

表:ftell() 函数调用格式及说明
调用格式 说明
Position=ftell (fileID) 返回指定文件中位置指针的当前位置

【实例 2】查询文件中的位置指针。在 MATLAB 命令行窗口中输入如下命令:
>> close all                  % 关闭当前已打开的文件
>> clear                      % 清除工作区的变量
>> fid = fopen('stars.txt')   % 打开文件
fid =
    3
>> ftell(fid)                 % 查询当前位置
ans =
    0
>> fgetl(fid)                 % 使用 fgetl 读取文件的第1行
ans =
   'Ah! why, because the dazzling sun'
>> ftell(fid)                 % 返回位置指针的当前位置
ans =
   35
>> fclose(fid);               % 关闭文件

MATLAB fseek()函数

在 MATLAB 中,fseek() 函数用于将文件位置指示器移动到文件中的指定位置。

fseek() 函数的调用格式及说明如下表所示:

表:fseek() 函数调用格式及说明
调用格式 说明
fseek(fileID, offset, origin) 在指定文件中设置文件位置指示符相对于 origin 的 offset 字节数。Origin(起始位置)参数设置为 bof 或 -1:文件的开头;cof 或 0:文件中的当前位置;eof 或 1:文件的结尾
status = fseek(…) 显示操作状态。当操作成功时,返回 0;否则返回 -1

【实例 3】将文件位置指针移到指定位置。在 MATLAB 命令行窗口中输入如下命令:
>> close all                    % 关闭当前已打开的文件
>> clear                        % 清除工作区的变量
>> fid = fopen('stars.txt');    % 打开文件
>> ftell(fid)                   % 查询文件位置指针的当前位置
ans =
    0
>> t=fgetl(fid)                 % 读取文件的第1行
t =
   'Ah! why, because the dazzling sun'
>> ftell(fid)             % 查询当前位置
ans =
   35
>> fseek(fid,12,'bof');   % 将位置指针移到bof指定的文件开头,并移动12字节数
>> fgetl(fid)             % 读取新位置的第1行
ans =
   'ause the dazzling sun'
>> fclose(fid);           % 关闭文件

相关文章