counting column bits with the same weight in binary array

I have a binary array and I want to count the column with the same weight.
I want to do it with function...m-file
I hope that someone can help me to solve it.
Thanks Henry

3 comentarios

dpb
dpb el 7 de Sept. de 2015
Attach your data as text, not an image so someone can do something with it, specifically. But, your answers given don't coincide with the data by any stretch...
Henry Buck
Henry Buck el 8 de Sept. de 2015
Editada: dpb el 8 de Sept. de 2015
For example:
19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0
0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1
1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1
0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1
1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1
0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0
0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0
There is 6 col with the same weight (two 1 bits) - col=0,3,6,7,11,15.
There is 8 col with the same weight (three 1 bits) - col=1,9,10,12,13,14,17,18.
There is 5 col with the same weight (four 1 bits) - col=2,4,5,16,19.
>> [0:size(a,2)-1;sum(a)]
ans =
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
2 3 4 2 4 4 2 2 2 3 3 2 3 3 3 2 4 3 3 4
>>
So, turns out not as far off as thought if you count from the left rather than using the header row as the column number. Other than missing one '2' (col 8), seems ok...

Iniciar sesión para comentar.

 Respuesta aceptada

dpb
dpb el 7 de Sept. de 2015
Editada: dpb el 8 de Sept. de 2015
n=hist(sum(array),0:size(a,1));
N th element of n will contain counts for that number of bits from zero to size(array,1); ie, for all possible totals from no bits set to all.
ADDENDUM
>> [0:size(a,1);hist(sum(a),0:size(a,1))]
ans =
0 1 2 3 4 5 6 7
0 0 7 8 5 0 0 0
>> sum(ans(2,:))==size(a,2) % sanity check...
ans =
1
>>
Total number does equal number of columns in array...
Actually, there are 7,8,5 of wt=2,3,4, respectively.

3 comentarios

:-) Thanks a lot,
If I need to count a part of the matrix above -let say row3 to row6. What would I need to change/add instead of: [0:size(a,1);hist(sum(a),0:size(a,1))]
Thanks again, Henry
If it's a subset of rows, only the array indices to refer to the subset...
r1=3; r2=6;
n=hist(sum(array(r1:r2,:)),0:size(a,1));
Hi dpb, It works perfectly. Thanks for your help, Henry

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 7 de Sept. de 2015

Comentada:

el 9 de Sept. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by