我有一个文本文件(c:\input.txt),它有:
2.0 4.0 8.0 16.0 32.0 64.0 128.0 256.0 512.0 1024.0 2048.0 4096.0 8192.0
在Matlab中,我想把它读成:
data = [2.0 4.0 8.0 16.0 32.0 64.0 128.0 256.0 512.0 1024.0 2048.0 4096.0 8192.0]
我试过这个代码:
fid=fopen('c:\\input.txt','rb');
data = fread(fid, inf, 'float');
data
但是我得到了一些垃圾值:
data =
1.0e-004 *
0.0000
0.0015
0.0000
0.0000
0.0000
0.0000
0.0000
0.0001
0.0239
0.0000
0.0000
0.0000
0.0000
0.0066
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0016
0.0000
0.0000
0.0276
0.0000
0.3819
0.0000
0.0000
哪里出错了?
发布于 2009-09-21 14:45:37
发布于 2009-09-21 14:47:37
您的文件是文本文件,因此您应该打开它以便阅读文本:
fid=fopen('c:\\input.txt','rt');
然后,在阅读方面,我发现TEXTSCAN比FREAD/FSCANF更强大(它们之间的差异被总结为这里 )。
data = textscan(f, '%f')
返回单元格数组。你可以从
>> data{1}
ans =
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
TEXTREAD比TEXTSCAN更容易使用,但是根据文档现在已经过时了。
https://stackoverflow.com/questions/1457177
复制相似问题