举例说明。假设有一个txt文件如下,文件名是bin.txt。
0001
0101
0010
1001
Matlab处理思路:
首先打开txt文件,并把数据读到字符串变量中。使用的命令是fopen和fread。
然后,把二进制每个数据分隔开(这就要根据txt文件中不同的分隔方式处理,我给的例子是换行符,其他的也可能是空格,也可能是分号等),并且分别转换为十进制,用命令bin2dec。
编写一个M文件如下。注意要与bin.txt文件放在同一个目录下,执行即可。
fid = fopen('bin.txt', 'r');
c = fread(fid, '*char')';
n=4; %%这里设定二进制的位数
for i=1:floor(length(c)/(n+2))+1
decimalData(i)=bin2dec(c((i-1)*(n+2)+1:(i-1)*(n+2)+n));
end
decimalData
得到结果:
decimalData =
1 5 2 9
追问大侠,出问题了。??? Index exceeds matrix dimensions.
Error in ==> b2d at 5
decimalData(i)=bin2dec(c((i-1)*(n+2)+1:(i-1)*(n+2)+n));最好能输出到另一个文本。我的文件比较大啊。
追答你把你的原始数据给我看看。
复制一部分在这里。