声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1409|回复: 9

[编程技巧] 如何读取此类带文件头的文档?

[复制链接]
发表于 2008-4-3 21:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
读取 头文件的各项信息,: 的前后值,并将后面的数据赋值给 info 数组。
哪位有此经验?

目前使用:
this_path = 'ttt.txt';
head = dlmread(this_path,':',[2 1 2 1]);
info = dlmread(this_path,' ',[5 0 7 9]);

首行有一个空行。
用 第一句 来单读文件头,好像只能读取数字,不然会报错,字符无法读取。help dlmread 说 reads numeric data,有别的读字符的类似函数吗?
第二句倒是可以,如果读取 500*500 的数据,还有什么更好的建议吗?

文件如:ttt.txt

Type: txt
Data: 20080326
Who: abc
Info:
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 1 8 9 10
4 5 6 7 8 1 2 3 9 10

ttt.txt

113 Bytes, 下载次数: 7

回复
分享到:

使用道具 举报

 楼主| 发表于 2008-4-3 21:52 | 显示全部楼层

顺便报个论坛的BUG

刚好像 post.php 报错了,可能是 单引号引起的。但发现帖子倒是发上来了。请测试!
可能是 info = dlmread(this_path,' ',[5 0 7 9]); 中的 两个单引号。
此帖再试试。

------- 这次没问题。不解。
发表于 2008-4-4 12:18 | 显示全部楼层
dlmread只支持数字读取,帮助文件里面有提示的

评分

1

查看全部评分

发表于 2008-4-4 12:19 | 显示全部楼层
doc dlmread 注意note
 楼主| 发表于 2008-4-4 19:39 | 显示全部楼层
所以想问问有没有能读字符的类似函数?
发表于 2008-4-7 15:49 | 显示全部楼层
发表于 2008-4-8 15:38 | 显示全部楼层
如果你的Txt文档的格式是整齐并且基本不变的话,可以使用下面的参考程序
fp=fopen(FileName,'r');  %打开你指定的文件
while ~feof(fp)                 %不断读取每一行数据
    tline = fgets(fp);           %将该行字符串赋给tline
    for m=1:4                      %这个循环指跳过四行后再读取数据,有时用得到
            tline = fgets(fp);
        end
    T = str2double(tline(26:39)); %将其中的某段字符转换为双精度数,T为你要的数据
end
fclose(fp);
上面的程序只是参考,具体使用时根据需要改变。希望对你有帮助。:lol
发表于 2008-4-11 13:51 | 显示全部楼层
建议使用xlsread/xlswrite ,txt的读写不方便
发表于 2008-4-11 15:54 | 显示全部楼层
我觉得用importdata很好啊,
文本用的是空格隔开的,那么语句
x=importdata('ttt.txt',' ',4);如果用逗号隔开的,第二个参数里面',';第三个参数是去掉前面几行
 楼主| 发表于 2008-4-12 00:16 | 显示全部楼层
谢谢各位!
其实我主要还是想要读 文件头的信息,包括 字符 和数字。MATLAB 在这种不同类型的情况下,就不方便了。我已通过其它途径解决。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 13:25 , Processed in 0.060564 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表