fread返回错误的数据

时间:2016-06-19 11:06:01

标签: matlab fopen fread

我正在使用fread来读取位于我的C盘中的文件,文件的内容是:

ssa.txt:  0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0

ssb.txt:  0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1

但是fread正在阅读

第1至25栏

48    48    48    48    48    49    49    49    49    48    48    48    48    48    48    48    49    49    49    49    49    48    48    48    48

第26至31栏

48    48    48    48    48    48

我的代码:

n = 31;
fid =fopen('ssa.txt');
s1 = fread(fid,[1,n]);
fclose(fid);

fid2 =fopen('ssb.txt');
s2 = fread(fid2,[1,n]);
fclose(fid2);

有人可以解释我的错误吗?

1 个答案:

答案 0 :(得分:0)

究竟为什么fread做到了我不确定,我认为它与fread读取二进制文件有关,这些数字是0的ASCII表示形式1。我建议的工作只是使用dlmread来表示数字:

dlmread('SSA.txt')
ans =
  Columns 1 through 16
     0     0     0     0     0     1     1     1     1     0     0     0     0     0     0     0
  Columns 17 through 31
     1     1     1     1     1     0     0     0     0     0     0     0     0     0     0