matlab如何讀取未知行數,帶頭文件和字段名的txt文件

文件格式是這樣的
20120108 50024 X235RZB30801 01 15
2361 2362 2363 2364 2365 2366 2367 2368 2369 236A 236B 236C 236D 236E 236F
18854.49 17757.25 90809.09 98429.45 21283.85 77620.26 45330.92 70173.54 16957.37 -9.51908 18.67279 27.211 22.175 1182.5 1029.49
18854.81 17757.46 90808.71 98429.45 21283.85 77620.20 45330.57 70173.99 16957.39 -9.51824 18.67171 27.206 22.175 1181.1 1029.27
18854.44 17757.52 90808.91 98429.38 21283.85 77620.48 45330.77 70173.82 16957.51 -9.52009 18.67234 27.212 22.175 1181.4 1028.74
18854.70 17757.32 90809.15 98429.46 21283.85 77619.98 45330.61 70173.45 16957.49 -9.51951 18.67069 27.214 22.175 1182.8 1028.04
全部的數據在txt文件中都是以空格符隔開的,以上是爲了讓你們看清楚才換行間斷的。因此整個文件好像是隻有一行。
20120108 50024 X235RZB30801 01 15  這些是頭文件。
2361 2362 2363 2364 2365 2366 2367 2368 2369 236A 236B 236C 236D 236E 236F 這是十五個字段名。
18854.49 17757.25 90809.09 98429.45 21283.85 77620.26 45330.92 70173.54 16957.37 -9.51908 18.67279 27.211 22.175 1182.5 1029.49  這十五個數據就是每一個字段對應的。
列數就是十五,行數應該是1440行,一分鐘一行,一天24小時。
試了textread,fscanf,我是matlab新手,一直不知道該怎麼樣讀取。
我想要的結果就是跳過頭文件和字段,將數據存儲成15列乘1440的矩陣。
若是轉換後能在每行數據前加上這一列時間就更好了。
2012-01-08 00:00:00
2012-01-08 00:01:00
2012-01-08 00:02:00
2012-01-08 00:03:00
請你們幫忙實現,很是感謝css

sample visionhtml

filename='data.txt';
fid=fopen(filename, 'r');
%% 讀第一行,無視之
firstLine=fgetl(fid);
% disp(firstLine);
%% 讀第二行,解析爲列頭
secondLine=fgetl(fid);
columnHeader=regexp(secondLine, '\s', 'split');
fprintf(1, '數據列數爲:%d\n', size(columnHeader, 2));
%% 讀以後的數據行
dataLine=fgetl(fid);
data=cell(1440, size(columnHeader, 2));
i=1;
while(dataLine~=-1)
    % 顯示數據行
%     disp(dataLine);
    % 處理數據行
    temp=regexp(dataLine, '\s', 'split');
    data(i, 2:16)=temp(1, 1:15);
    % 讀取下一行
    dataLine=fgetl(fid);
    i=i+1;
end
% 顯示在一張表中
f = figure;
colnames = columnHeader;
t = uitable(f, 'Data', data, 'ColumnName', colnames, 'Position', );
相關文章
相關標籤/搜索