我有一个包含如下数据的.txt文件:
0000000011111000
0000001110001110
0000011000011111
0001110000000001
0011000000000001
0011000000000001
0110000000000001
0100000000000001
1100000000000001
1100000000000001
1000000000000001
1100000000000010
1100000000000110
0100000000001100
0110000000011000
0011111111110000
0
//repeats like this
最后的0是一个标签,用于描述0和1的16x16矩阵。如您所见,它实际上是0的二进制图像。
我需要将此文件作为16x16矩阵加载。我尝试了importdata
,textscan
和fscanf
,但没有一个适合我。
该文件以此格式继续。
我最初的尝试是使用''作为importdata
的分隔符,但这没有用。
有没有办法实现这个目标?
答案 0 :(得分:2)
这是阅读文件的一种方法(有关文档,请参阅here):
fid=fopen(textfile);
dat = textscan(fid,'%s',-1); % <-- read into cell array of strings
fclose(fid);
dat=char(dat); % <-- concatenate the strings into one char array
dat = double(dat)- '0'; % <-- convert to numeric 0/1 (48 = '0'+0)
最后一行将包含所代表的数字(&#34; 0&#34;)和多余的内容,您可以删除例如dat(end,:)=[];
快乐的小路!
编辑:虽然发布的答案适用于我使用的输入文本文件和输入法,但对于OP,代码需要修改(可能是由于输入格式不同):
i = 1 : length (dat{1,1})
result(i,:) = double(char(dat{1,1}{i,1})) - '0';
end