请教如何打开下面的文件,并读出?
0 +47038.7 1.0509:26:07C2 +46477.7 1.0309:28:38C
4 +44865.7 1.0409:28:48C
6 +41786.4 1.0309:28:56C
8 +39896.0 0.9709:29:03C
10 +37518.4 0.9309:29:15C
12 +35858.5 0.9209:29:30C
14 +46105.0 1.0309:30:21C
16 +46168.6 6.8909:30:30C
18 +48672.3 4.3309:30:40C
20 +49565.7 0.4909:30:48C
22 +49580.7 0.5309:30:55C
24 +49602.3 0.8409:31:03C
26 +49582.5 1.5109:31:11C
28 +49577.0 1.3909:31:19C
30 +49589.3 0.6109:31:27C
32 +49578.3 1.0609:31:29C
34 +49512.5 1.7709:31:38C
上面是我们的实习数据,请教各位高手,如何用MATLAB打开含有上述数据的文件?并且将它读出?
我用fid=fopen('d:\shixi\dicia3.txt','rb');打开上述数据时,fid=3,说明应该是成功的,但是用=fscanf(fid,'c')读出时,结果却如下:
a =
''
count =
0
请问该如何,才能使用上述文件中的数据呢?
回复
fscanf后一个参数要改一下,例如: fscanf(fid,'%g %g').具体用法参见help,也可以搜索一下论坛. 首先你要清楚你的文件是什么格式的,如果是ascii的格式,应该为fid=fopen('d:\shixi\dicia3.txt','r'); ‘rb’我记得是读二进制文件的。 为什么我改成 fscanf(fid,'%g %g')结果仍旧不对?
>> =fscanf(fid,'%g %g')
a =
0
count =
1 用textread来读取吧,你的文件数据类型太多不同了
[ 本帖最后由 ChaChing 于 2009-5-16 18:13 编辑 ] 读出来没有啊
我试了一下:
文件a.txt 写入以下内容
1+2 3 4:5 C
1+2 3 4:5 C
>> fid=fopen('a.txt','r')
>> aa=fread(fid,30,'uint8=>char');aa=aa.'
aa =
1+2 3 4:5 C
1+2 3 4:5 C 根据楼上的
>> fid=fopen('a.txt','r')
>> aa=fread(fid,30,'uint8=>char');aa=aa.'
aa =
1+2 3 4:5 C
1+2 3 4:5 C
我已经读出了文档中的内容。但是请问如何才能从aa中取出数组中的第三列元素呢?即
46477.7
44865.7
……
等
我刚学MATLAB两个月,所以请大家耐心指教。不胜感激。 还是我的那文件
>>fid=fopen('a.txt','r');del=fread(fid,6,'uint8=>char');aa(1)=fread(fid,1,'uint8=>char');aa(2)=fread(fid,1,'uint8=>char');
则aa=,但是字符型的矩阵。一个字符8bit,只要在fread时跳过不要字符就可以了。你自己再看看help。 =textread(yourfilename,'%d %c %f %f %s %c');
c 存放的就是你要的数据
[ 本帖最后由 ChaChing 于 2009-5-16 18:15 编辑 ] 估计你的存成二维的数组 太感激楼上的几位了。
>> =textread('d:\shixi\dicia3.txt','%d %c %f %f %s %c');
>> c
c =
1.0e+004 *
4.7039
4.6478
4.4866
4.1786
3.9896
3.7518
3.5859
4.6105
4.6169
4.8672
4.9566
4.9581
4.9602 liujia1067 发表于 2007-1-25 19:41 static/image/common/back.gif
首先你要清楚你的文件是什么格式的,如果是ascii的格式,应该为fid=fopen('d:\shixi\dicia3.txt','r'); ‘r ...
fid = fopen(filename, permission, machineformat)
fopen的permission参数并无'b'
machineformat参数才有'b'
页:
[1]