Borrar filtros
Borrar filtros

maximal subset N of binary matrix

1 visualización (últimos 30 días)
David
David el 16 de En. de 2013
Hello, i have a 200x200 symmetric binary matrix that's relatively sparse. I want to choose a subset N of rows with their matching columns that have the largest sum (i.e. most 1's).
That is, imagine it's set of 200 subjects, and I've got a matrix of all their interactions (that are either successful =1, or failures = 0). I want to find, for example, the 10 subjects that were the most successful (doesn't matter if there are more than one subset of 10 that did perfectly, I just need to find one)
I'm racking my brain trying to do this efficiently and hope someone might have a good solution out there.
thank you very much for your time, dave
  1 comentario
David
David el 16 de En. de 2013
Thank you for your responses, I think I wasn't very clear!
I need not the 10 largest row (col) sum, but need the 10 subjects whose interactions were the greatest. Say, for example, I just wanted the top 3 performers, and looked at subject 4 7 11. I would look at their matching coordinates and sum that value as their total score (which, in this case, would include 6 matrix element values, the 6 interactions for the three subjects).
So i'm not really looking for the max columns, but the max interactions for a given subset of N subjects within a larger set of say, 200 subjects. I hope that is more clear. thank you for the fast responses!

Iniciar sesión para comentar.

Respuestas (2)

Walter Roberson
Walter Roberson el 16 de En. de 2013
That array is not very big, so I would suggest something like
[maxvals, maxidx] = sort( sum(YourArray), 'descend' )
then maxvals(1:10) are the values and maxidx(1:10) are the corresponding row indices, and YourArray(maxidx,:) would be the rows.
  1 comentario
David
David el 16 de En. de 2013
see my comments above, thank you for your responses.

Iniciar sesión para comentar.


Andrei Bobrov
Andrei Bobrov el 16 de En. de 2013
M = rand(200) > .95; % your binary matrix
out = M(sum(M,2) > 10,:);
  1 comentario
David
David el 16 de En. de 2013
see my comments above, thank you for your responses.

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by