How to group and convert to decimal?

3 views (last 30 days)
The output of r is 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1
I want to group every 8 digits and convert to decimal
Please help
  4 Comments
Image Analyst
Image Analyst on 4 Feb 2013
Edited: Image Analyst on 4 Feb 2013
You mean an "array" of doubles is returned by r(), like this [0, 0, 0, 1, 0, 1, 0, etc.], not just a single double like you implied. So, it's like what Azzi assumed.

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 4 Feb 2013
x=[ 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1]
x=num2str(x)
x(x==' ')=[];
y=reshape(x,[],8);
out=bin2dec(y)
  3 Comments

Sign in to comment.

More Answers (1)

Jan
Jan on 4 Feb 2013
Edited: Jan on 4 Feb 2013
Converting from a double vector to a string and back to a double inside bin2dec is not efficient. Better convert from binary to decimal values directly:
x = [ 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1];
d = 2 .^ (length(x)-1:-1:0) * x(:);

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!