我对matlab中的位有疑问。例如,a=101010101011111001。在这里,我想从 'a' 一次生成一组 8 位,并获得它的 bin2dec 形式并将其保存为另一种形式,例如 b。
'a' 有三组:第一组= 10101010,第二组=10111110,第三组=01。
'b' 将具有这些组的 bin2dec。我希望它是,b = [170 190 1]。我想为具有位的大文件执行此操作,而我无法让组拥有我自己的(与我在上面的示例中所做的不同)。考虑 matlab 循环和所有。提前致谢。
只需使用重塑!bin2dec 采用整个数组。
a = '10101001111101010110000001111110010101111001011110011011';
b = bin2dec(reshape(a,8,[])')
b =
169
245
96
126
87
151
155
也都在一条线上。
如果a
是数字,只需添加:
a = num2str(a);
编辑:
好吧,如果我说对了,您想要:
a = '1010100111110101011000000111111001010111100101111001';
thesize = ceil(length(a)/8);
b = zeros(1,thesize);
for i = 1:thesize
b(i) = bin2dec(a(((i-1)*8+1):min(length(a),(i*8)+1)));
end