每一次開啟檔案時,MATLAB 即保持一個檔案位置指標(File Position Indicator),以決定下一次進行資料讀取或寫入的位置。控制此指標的函數如下:
函數 功能 feof 測試指標是否在檔案結束位置 fseek 設定指標位置 ftell 取得指標位置 frewind 重設指標至檔案起始位置 foef 可用於測試指標是否在檔案結束位置,例如
在上例中,feof(fid) 傳回 1,表示檔案指標已經在檔案結束位置,因為 test.txt 只包含 10 個數目字。若要在從 test.txt 的起始位置讀出資料,可用 frewind 來重設指標的位置:
>> frewind(fid); >> A = fscanf(fid, '%g', 5) A = 1 4 9 16 25 fseek 函數可用於設定指標位置,其格式如下
status = fseek(fid, offset, origin) 其中 fid 是檔案識別碼,offset 是偏移量(以 byte 為單位,可以是正數或負數),origin 代表基準點,可包含下列字串:
- 'cof':指標的現在位置(Corrent Position in File)
- 'bof':檔案的起始位置(Beginning of File)
- 'eof':檔案的結束位置(End of File)
ftell 則可用於傳回現在的指標位置。例如
40 代表指標已在檔案結束位置。欲將指標向前移動 10 bytes,可輸入如下:
>> fseek(fid, -10, 'cof'); >> ftell(fid) ans = 30 此代表指標的新位置是 30。
MATLAB程式設計:入門篇