整数数组到二进制数组

ase*_*sel 10 arrays binary matlab

我有一个整数数组:

a=[3,4,5,6,7];
Run Code Online (Sandbox Code Playgroud)

我想将它转换为每个四位的二进制数组.对于上面的整数数组,我想获得以下二进制数组:

abinary=[0,0,1,1, 0,1,0,0, 0,1,0,1, 0,1,1,0, 0,1,1,1];
Run Code Online (Sandbox Code Playgroud)

有没有快速的方法呢?

Jon*_*nas 16

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))'
Run Code Online (Sandbox Code Playgroud)