1. 程式人生 > >matlab對於固定長度的行的文字,最後一行的讀取

matlab對於固定長度的行的文字,最後一行的讀取

基本實現想法是:

因為每一行的長度是固定的,大小也是固定的(下面的例子是42,因此下面程式碼的引數會有 (fisize/42)),所以整個文字的大小除以每一行的大小就可以得到這個文字的行數;

        再把這個行數用到textscan函式中,就可以直接讀取最後一行的內容。

fid = fopen('E:\matlab2015a\projects\test\char1.dat','rt');

fseek(fid,0,'eof');
fsize = ftell(fid);      %獲得檔案的大小
frewind(fid);           %讓檔案位置指標返回首地址,textscan會用到
C = textscan(fid,'%d-%d-%d %d:%d:%d %s %s %s %d',1,'HeaderLines',(fsize/42)-1);   %要注意引數的填寫

fclose(fid);

在命令列中輸出的結果如下:

>> test

K>> C
C = 
    [2017]    [8]    [16]    [9]    [36]    [7]    {1x1 cell}    {1x1 cell}    {1x1 cell}    [128]

結果與我要的完全一致,而且沒有用迴圈之類的,效率上會很高。