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
請大家幫忙實現,非常感謝
sample vision
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', );轉載于:https://www.cnblogs.com/AI-Algorithms/p/3669720.html
總結
以上是生活随笔為你收集整理的matlab如何读取未知行数,带头文件和字段名的txt文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql事务和锁原理
- 下一篇: 自己的路,还很长。