目前在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]
任何人都可以帮助我????
提前感谢。
答案 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'