MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Sharen H
on 30 Oct 2012

i have to convert a decimal value to binary and group every two digits to

form a new one dimensional matrix whose size is 1,4*rows*cols

i tried this its not working ie

secret = [22 33

22 44]

[rows,cols]=size(secret);

for i= 1 : rows

for j= 1: cols

binarysecret{i,j}=dec2bin(secret(i,j),8);

end

end cc=1;

[r,c]=size(binarysecret)

for q = 1 : r

for q1 = 1 : c

while(x<8)

y=x+1;

secretDNA{cc} = binarysecret{q,q1}(x:y)

x=x+2;

cc=cc+1;

end

end

end

Thanks in advance

*No products are associated with this question.*

Answer by Andrei Bobrov
on 30 Oct 2012

Edited by Andrei Bobrov
on 30 Oct 2012

Accepted answer

bi = dec2bin(secret,8) - '0'; out = reshape(mat2cell(bi,ones(size(bi,1),1),2*ones(size(bi,2)/2,1))',1,[]);

or

n = 8; s = size(secret); bi = rem(floor(reshape(secret',[],1)*pow2(1-n:0)),2); out = reshape(mat2cell(bi,ones(prod(s),1),2*ones(n/2,1))',1,[]);

## 0 Comments