将二进制数转换为双矩阵,每行4位数

时间:2016-12-08 06:27:32

标签: matlab matrix binary

我想从8位二进制数字中获取2x4矩阵 第一行应该是前四位数, 第二行应该是最后四位数字:

b1 = 00000001

应该返回

0 0 0 0
0 0 0 1

1 个答案:

答案 0 :(得分:1)

如果你有一个8比特的数组,并且你想要一个2比4,你需要reshape

b1 = [0 0 0 0 0 0 0 1];
reshape(b1, [4, 2]).'

导致

ans =
 0     0     0     0
 0     0     0     1

dec2bin的结果是一个char数组,您可以通过减去double的ascii值( char {{}将其转换为'0' 1}}):

'0'

您可以在ideone上播放。



>> p1 = 6;
>> b = dec2bin(p1, 8);  % b is a char array (string)
>> B = b-'0';  % B is a double (numberic) array
>> reshape(B,4,2).'
ans =
 0     0     0     0
 0     1     1     0