matlab中的位分组

matlab中的位分组,matlab,bits,Matlab,Bits,我有一个关于matlab中bits的问题。例如,a=101010101011111001。在这里,我想从“a”中一次生成一组8位,并获取其bin2dec形式,然后将其保存在另一种形式中,比如b “a”有三组:第一组=10101010,第二组=10111110,第三组=01 “b”将具有这些组的bin2dec。我希望它是,b=[1701901]。我想对具有位的大型文件执行此操作,而我不可能使组拥有我自己的位(与上面示例中的不同)。考虑matlab循环和所有。提前感谢。如果a是一个数字,只需添加:

我有一个关于matlab中bits的问题。例如,a=101010101011111001。在这里,我想从“a”中一次生成一组8位,并获取其bin2dec形式,然后将其保存在另一种形式中,比如b

“a”有三组:第一组=10101010,第二组=10111110,第三组=01


“b”将具有这些组的bin2dec。我希望它是,b=[1701901]。我想对具有位的大型文件执行此操作,而我不可能使组拥有我自己的位(与上面示例中的不同)。考虑matlab循环和所有。提前感谢。

如果
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

只要使用重塑!bin2dec获取整个阵列

a = '10101001111101010110000001111110010101111001011110011011';
b = bin2dec(reshape(a,8,[])')
b =

   169
   245
    96
   126
    87
   151
   155

也都在一行中。

我希望通过使用一些循环来实现这一切,我不知道有多少位,就像在大量位中一样。谢谢,然后编辑你的帖子,并给出一个更合适的例子,因为没有人能够帮助你提供信息不要用像大小这样的名称来调用变量!这是一种保证以后会出现恶意bug的方法。如果您正在读取文件,为什么不直接使用
fread
功能呢?