24小时热门版块排行榜    

查看: 2304  |  回复: 18

见贤思齐

铁杆木虫 (著名写手)

[求助] 200多个txt文件matlab读取问题

求助大神,本人手上有200多个txt文件,想用matlab读取后写入excel中,主要问题是txt文件从第五行开始才有想要的数据,并且每行只想用其中第1、3、4、7列,其他的列数不需要。
请问该用哪些函数,最近才开始学习MATLAB,还请版上的老虫们指教!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

囊有钱仓有米腹有诗书
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

见贤思齐

铁杆木虫 (著名写手)

见贤思齐: 回帖置顶 2012-12-11 10:00:16
引用回帖:
13楼: Originally posted by mei3014 at 2012-11-27 12:06:54
根据前面的回答,一个文件的数据提取你应该会了吧,多个有规则命名的文件的数据提取可以参考下个帖子:
http://muchong.com/bbs/viewthread.php?tid=5210895
还不明白的可以再问!

一个数据提取还不算是全会,因为我只能提取第2、3的数据,第9、10列的日期时间格式数据还是没办法提取,刚开始是提示txt文件中的变量有问题(可能是matlab不识别这样的日期时间格式吧)
我就是想把附件中的数据从第5行开始,提取其中的2、3、7、8(或者7、8算一列,也可能算很多列,反正就是日期和时间的那列)
由于文件有好几百个,所以特别希望能够能够写个代码把名字改了,这些文件名太长了,我只需要中间的日期就行了。(其实每个文件的第二行也有日期的信息,按照那个改也行)
改名字以后就一个个把这些txt文件的数据提取到同一个excel文件中,这样就有日期时间和那两列数据了,然后就可以用这一大堆数据和其他相应的资料作图了,关键是俺现在连单个文件都还不怎么会读取,之前又没有学过C语言,感觉啥都不会,所以循环什么的看都看不懂!还在啃C语言呢。。。。

附自己的写的代码:

[a1,b1]=textread('_Res.txt','%*s %f %f %*f %*[^\n]',-1,'headerlines',4)

未命名.jpg

囊有钱仓有米腹有诗书
14楼2012-11-27 16:13:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

blesswj

金虫 (小有名气)

【答案】应助回帖

★ ★
xiegangmai: 金币+1, 谢谢参与 2012-11-18 19:12:27
见贤思齐: 金币+1 2012-11-19 21:17:37
文件多的话,如果文件名有顺序的话,你用个循环就可以一个个读取了,如果文件名较乱,你直接在windows下全选,然后F2全名改名,修改后的文件名就哟顺序了!你试试吧。
多累的时间,想想未来,忍一忍,走下去......
7楼2012-11-17 19:46:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与 2012-11-16 19:25:20
见贤思齐: 金币+1, 有帮助 2012-11-19 21:16:03
可以用textread  其中headerlines 可设置从开头算起忽略行
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2012-11-16 09:37:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

blesswj

金虫 (小有名气)

【答案】应助回帖


xiegangmai: 金币+1, 谢谢参与 2012-11-18 19:12:37
不是啊,你把文件全部选上,然后F2,系统光标会放到第一个文件上,你随便给个名字,然后后面的文件都改变了,而且名字都是连续的。
多累的时间,想想未来,忍一忍,走下去......
10楼2012-11-18 10:36:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mei3014

金虫 (正式写手)

木有头屑

上传1个原文TXT,帮你试试
一勤天下无难事,处世无难忍最高。
18楼2013-12-10 08:49:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

见贤思齐

铁杆木虫 (著名写手)

引用回帖:
2楼: Originally posted by dbb627 at 2012-11-16 09:37:09
可以用textread  其中headerlines 可设置从开头算起忽略行

试了一下,可以做到,但是想把读取的所有数据放到同一个excel中,不知道该怎么实现。
囊有钱仓有米腹有诗书
3楼2012-11-16 22:15:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖


xiegangmai: 金币+1, 谢谢参与 2012-11-18 19:12:10
引用回帖:
3楼: Originally posted by 见贤思齐 at 2012-11-16 22:15:49
试了一下,可以做到,但是想把读取的所有数据放到同一个excel中,不知道该怎么实现。...

用xlswrite就可以了
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
4楼2012-11-16 23:42:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

blesswj

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与 2012-11-18 19:12:19
见贤思齐: 金币+1 2012-11-19 21:16:28
但是如果txt文本中的内容格式如果十分规范,使用上面几楼的说法就容易处理,如果格式不规范的话,还是挺麻烦的。如果格式不规范你可以使用importdata命令,把数据先导入到matlab变量中,形成矩阵,然后矩阵操作就很容易了,这个命令将数字与字符分开保存,所以处理不规范的txt文件更方便。
多累的时间,想想未来,忍一忍,走下去......
5楼2012-11-17 14:56:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

见贤思齐

铁杆木虫 (著名写手)

引用回帖:
5楼: Originally posted by blesswj at 2012-11-17 14:56:27
但是如果txt文本中的内容格式如果十分规范,使用上面几楼的说法就容易处理,如果格式不规范的话,还是挺麻烦的。如果格式不规范你可以使用importdata命令,把数据先导入到matlab变量中,形成矩阵,然后矩阵操作就很 ...

关键是文件太多,一个个import的话估计要几个小时,而且文件名都很长,昨天晚上用cmd批量改文件名也没有成功。。。
囊有钱仓有米腹有诗书
6楼2012-11-17 16:13:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

见贤思齐

铁杆木虫 (著名写手)

引用回帖:
7楼: Originally posted by blesswj at 2012-11-17 19:46:45
文件多的话,如果文件名有顺序的话,你用个循环就可以一个个读取了,如果文件名较乱,你直接在windows下全选,然后F2全名改名,修改后的文件名就哟顺序了!你试试吧。

试了一下,F2只能修改其中的一个
囊有钱仓有米腹有诗书
8楼2012-11-17 23:22:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

见贤思齐

铁杆木虫 (著名写手)

引用回帖:
7楼: Originally posted by blesswj at 2012-11-17 19:46:45
文件多的话,如果文件名有顺序的话,你用个循环就可以一个个读取了,如果文件名较乱,你直接在windows下全选,然后F2全名改名,修改后的文件名就哟顺序了!你试试吧。

而且我的文件命名有一定的规律,最中间的8个字符是一样的,我把文件名全部提取出来了,然后用CMD运行bat重命名文件,但是还是改不了。

F2的那种方法更是行不通!
囊有钱仓有米腹有诗书
9楼2012-11-17 23:25:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 见贤思齐 的主题更新
信息提示
请填处理意见