Matlab二进制编码

4
我有一个包含一系列整数的向量,我想做的是将所有数字转换为它们相应的二进制形式,并将所有生成的二进制值连接在一起。有没有简单的方法来实现这个目标?
例如:a=[1 2 3 4] --> b=[00000001 00000010 00000011 00000100] --> c=00000001000000100000001100000100
3个回答

4

尝试:

b = dec2bin(a)

4
正如其他答案所指出的,函数DEC2BIN是解决此问题的一种选择。但是,正如这个其他SO问题所指出的那样,在转换大量值时,它可能是一个非常慢的选项。
为了更快地解决问题,您可以使用以下函数BITGET
a = [1 2 3 4];               %# Your array of values
nBits = 8;                   %# The number of bits to get for each value
nValues = numel(a);          %# The number of values in a
c = zeros(1,nValues*nBits);  %# Initialize c to an array of zeroes
for iBit = 1:nBits           %# Loop over the bits
  c(iBit:nBits:end) = bitget(a,nBits-iBit+1);  %# Get the bit values
end

结果c将是一个由0和1组成的数组。如果你想把它转换成字符字符串,可以使用以下函数:CHAR

c = char(c+48);

3

是的,可以使用 dec2bin 函数,然后进行字符串拼接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接