将int数组转换为二进制数组

时间:2014-03-15 07:03:06

标签: arrays matlab

目前在matlab中我有int数组a=[8 3 2 1];我希望将它转换为二进制数组,每个都有四位。

对于上面的int数组,我将获得以下二进制数组binary=[1000 0011 0010 0001];

我尝试了下面给出的代码:

binary = dec2bin([8 3 2 1],4)

我的答案是:

1000
0011
0010
0001

这是一个列矩阵。 但我需要一个行矩阵。 [1000 0011 0010 0001]

任何人都可以帮助我????

提前感谢。

1 个答案:

答案 0 :(得分:2)

如果您不需要前导零,则可以使用:

binary = str2num(dec2bin([8 3 2 1],4))'

这会给你:

binary =

        1000          11          10           1

如果您想要前导零,可以使用:

binary = cellstr(dec2bin([8 3 2 1],4))'

这会给你:

binary = 

    '1000'    '0011'    '0010'    '0001'

编辑:要获取数组中每个位的补码,您可以使用:

cmp = cellstr(dec2bin(bitcmp([8 3 2 1],4),4))'

你会得到:

cmp = 

    '0111'    '1100'    '1101'    '1110'