| 查看: 1898 | 回复: 3 | ||
[求助]
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 请大家帮忙实现,非常感谢 [ Last edited by 杨小胖 on 2012-1-14 at 16:51 ] |
» 猜你喜欢
水蒸气蒸馏法乳化现象
已经有3人回复
时间戳他又来了
已经有8人回复
小木虫看见有人已经知道结果了
已经有8人回复
J-J-W不为人知的一面
已经有11人回复
自然基金已经彻底沦为学术资源的交换工具
已经有36人回复
全人类对于AI的整体认知,尚且停留在幼儿园启蒙阶段
已经有14人回复
没消息就是被刷了呗
已经有10人回复
周末思考-婚姻长久底色
已经有12人回复
27考博求助
已经有4人回复
深圳大学材料学院“智能分子材料团队”招聘博士后
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab读取中国地图
已经有5人回复
MATLAB读取和写入文件的操作!!!!
已经有6人回复
用matlab读取TXT文本其中一列的数据!
已经有11人回复
VC读写TXT中的数据
已经有22人回复
Matlab 如何把计算结果保存为TXT格式!!!急!!!!!!!!!!!!
已经有4人回复
如何用matlab读入带逗号的txt文件,文件中含字母
已经有6人回复
Matlab可以创建读写文件吗?
已经有4人回复
用matlab如何将文件名弄到文件最后一行?
已经有3人回复
matlab反求未知输入参数
已经有4人回复
东北农村长篇:黑土.txt【转载】
已经有567人回复
怎么实现txt文件中的列数转换
已经有14人回复
【讨论】求助Matlab批量读取和处理一个文件夹里的txt文件
已经有9人回复
【求助】VB如何读取txt文件~~
已经有12人回复
【求助】matlab读取fortran输出的txt文件【已解决】
已经有3人回复

|
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', [20 20 1500 500]); |

2楼2012-01-29 11:02:47

3楼2012-01-29 11:03:56

4楼2012-01-29 11:52:05











回复此楼