How to group and convert to decimal?

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 commentaires

José-Luis
José-Luis le 4 Fév 2013
Modifié(e) : José-Luis le 4 Fév 2013
Please show what you have done so far.
doc bin2dec
doc reshape
Image Analyst
Image Analyst le 4 Fév 2013
Is the output of your r() function a string, or a numerical array (such as double or int32 or logical)? If it's a string, are there spaces between the digits?
Sharen H
Sharen H le 4 Fév 2013
r() function is a double value
Image Analyst
Image Analyst le 4 Fév 2013
Modifié(e) : Image Analyst le 4 Fév 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.

Connectez-vous pour commenter.

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 4 Fév 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 commentaires

The answer is 0
13
actual answer is 0
81
whats wrong in this code
Ok, there is an error in reshape function
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)
Sharen H
Sharen H le 4 Fév 2013
Thanks a lot....

Connectez-vous pour commenter.

Plus de réponses (1)

Jan
Jan le 4 Fév 2013
Modifié(e) : Jan le 4 Fév 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(:);

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by