我有一个整数数组:
a=[3,4,5,6,7];
我想将它转换为每四位一组的二进制数组。针对上述整数数组,我希望得到以下二进制数组:
abinary=[0,0,1,1, 0,1,0,0, 0,1,0,1, 0,1,1,0, 0,1,1,1];
有没有快速的方法可以做到这一点?
Matlab内置函数DEC2BIN可用。它可以创建一个字符数组,但是将其转换回数字很容易。
%# create binary string - the 4 forces at least 4 bits
bstr = dec2bin([3,4,5,6,7],4)
%# convert back to numbers (reshape so that zeros are preserved)
out = str2num(reshape(bstr',[],1))'
abinary = [bitget(a,4); ... %# Get bit 4 for each number
bitget(a,3); ... %# Get bit 3 for each number
bitget(a,2); ... %# Get bit 2 for each number
bitget(a,1)]; %# Get bit 1 for each number
abinary = abinary(:)'; %'# Make it a 1-by-20 array