doublewu25 发表于 2008-4-3 21:47

如何读取此类带文件头的文档?

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

目前使用:
this_path = 'ttt.txt';
head = dlmread(this_path,':',);
info = dlmread(this_path,' ',);

首行有一个空行。
用 第一句 来单读文件头,好像只能读取数字,不然会报错,字符无法读取。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

doublewu25 发表于 2008-4-3 21:52

顺便报个论坛的BUG

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

------- 这次没问题。不解。

94117239 发表于 2008-4-4 12:18

dlmread只支持数字读取,帮助文件里面有提示的

94117239 发表于 2008-4-4 12:19

doc dlmread 注意note

doublewu25 发表于 2008-4-4 19:39

所以想问问有没有能读字符的类似函数?

eight 发表于 2008-4-7 15:49

原帖由 doublewu25 于 2008-4-4 19:39 发表 http://www.chinavib.com/forum/images/common/back.gif
所以想问问有没有能读字符的类似函数? 看精华帖

tigerhead099 发表于 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

94117239 发表于 2008-4-11 13:51

建议使用xlsread/xlswrite ,txt的读写不方便

wwbeyondww 发表于 2008-4-11 15:54

我觉得用importdata很好啊,
文本用的是空格隔开的,那么语句
x=importdata('ttt.txt',' ',4);如果用逗号隔开的,第二个参数里面',';第三个参数是去掉前面几行

doublewu25 发表于 2008-4-12 00:16

谢谢各位!
其实我主要还是想要读 文件头的信息,包括 字符 和数字。MATLAB 在这种不同类型的情况下,就不方便了。我已通过其它途径解决。
页: [1]
查看完整版本: 如何读取此类带文件头的文档?