回 帖 发 新 帖 刷新版面

主题:求助:matlab文本文件读取(紧急)



我有一个文本文件有上万行,想读进matlab里,走分析,可是文件里数字与字符相杂,找不出规律,不知哪位大侠可以指点一下:

文件模式如下:
************************************************************************
                                                             Page   1
ensemble #       cdp   aoffset   FB_PICK
         1      2000   20.0000   32.0000
         1      2000  140.0000  114.6350
         1      2000  180.0000  141.1428
         1      2000 1260.0000  403.9398
         1      2000 1780.0000  482.1908
         1      2000 1900.0000  503.1475
         1      2000 1940.0000  514.3514


                                                              Page   2
ensemble #       cdp   aoffset   FB_PICK
         1      2000 2060.0000  538.9543
         1      2000 2100.0000  540.1504
         1      2000 2220.0000  561.1720
         1      2000 2260.0000  570.6778
         1      2000 2380.0000  597.0825
 At 23-Feb-07 18:22:45 finished reading  10.3 percent of dataset   1
         1      2000 2420.0000  599.6354
         1      2000 2540.0000  568.0000
         1      2000 2580.0000  634.6793
         1      2000 3380.0000  784.5062
         1      2000 3500.0000  748.0000
         1      2000 3540.0000  816.6619
         1      2000 3660.0000  780.0000
         1      2000 3700.0000  855.4461


                                                               Page   3
ensemble #       cdp   aoffset   FB_PICK
         1      2000 3820.0000  808.0000
         1      2000 3860.0000  873.2461
         2      2001  630.0000  275.3114
         2      2001  650.0000  279.3205
         2      2001  790.0000  328.2307
 At 23-Feb-07 18:22:45 finished reading  20.3 percent of dataset   1
         2      2001  810.0000  328.2925
         2      2001  950.0000  360.9253
         2      2001  970.0000  367.0698
         2      2001 1110.0000  390.9084
         2      2001 1130.0000  388.2037
         2      2001 1270.0000  406.3724
         2      2001 1290.0000  410.2233
         2      2001 1430.0000  433.8718
         2      2001 1450.0000  435.5029


                                                                                                                                              page   4
ensemble #       cdp   aoffset   FB_PICK
         2      2001 1590.0000  455.0477
         2      2001 1610.0000  461.2145
         2      2001 2730.0000  662.4961
         2      2001 2870.0000  628.0000
         2      2001 2890.0000  694.7202
         2      2001 3030.0000  660.0000
         2      2001 3050.0000  717.1951
         2      2001 3190.0000  684.0000
 At 23-Feb-07 18:22:45 finished reading  30.2 percent of dataset   1
         2      2001 3210.0000  752.1287


                                                                                                                                              Page   5
ensemble #       cdp   aoffset   FB_PICK
         2      2001 3350.0000  724.0000
         2      2001 3370.0000  781.4870
         2      2001 3510.0000  752.0000
         2      2001 3530.0000  814.8541
         2      2001 3670.0000  780.0000
         2      2001 3690.0000  853.4644
         2      2001 3830.0000  808.0000
         2      2001 3850.0000  874.7610
*****************************************************************************

回复列表 (共10个回复)

沙发


我只想要数字

板凳

建议如下:
1、删除文件中的非数字(工作量应该不大吧),只保留数字
2、比如文件名为text.txt,程序如下:
load text.txt;
a=text(:,3:4);
这段程序返回的a就是你文件中的所有第三列和第四列的数字,是一个矩阵。
如果是语句a=text(:,1:4),返回的a就是你文件中的所有第一列到第四列的数字。

按照我的方法试下

3 楼

2楼的恐怕不行吧,里面的文本不能识别的,
既然你只要数字,那就好办啊,Matlab中用个fgetl函数,你一行一行的读,然后判别读出来的东西有什么分别就好了,比如文本就是开头是字符的,或者是空行,数字最后转换一下str2num,代码自己写吧

4 楼

这个文本文件如果不超过256列*65536行的话
可以用excel打开,用excel打开文本文件的时候,注意
1.文本导入向导---分隔符号——下一步
2.tab键、空格——下一步
3.完成
并另存为excel文件,即*.xls格式
然后用
[num, txt] = xlsread('filename', ...)
因为不知道你的具体的用途,估计读过来的数字,不全是你想要的,后面可能你还需要作一些处理,剔出你不需要的数字,有问题,你自己动手后再交流:)

5 楼

我看是很有规律的
非数据行的格式一般也是基本固定的
数据行与非数据行容易区分
不用经过手工处理就可以读

6 楼

help textscan

7 楼

你可以先判断下ascII码呀,如果在数值范围内就读取。
page1之类的你自己找规律想办法吧,那个是单独的数字,应该好判断的

8 楼

可有偿提供代码解决方案

9 楼


[em1][em1]xieixe

10 楼

可能要做些处理,不是数值型的可删掉。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册