How to find subgroup min or max

1 visualización (últimos 30 días)
Tiina
Tiina el 8 de Mzo. de 2016
Comentada: Stephen23 el 8 de Mzo. de 2016
group_id=[1 1 1 2 2 3 3 3]';
B=[ 5 6 7 4 1 2 2 3]';
output: C=[ 5 0 0 0 1 2 2 0]';
  1 comentario
Jan
Jan el 8 de Mzo. de 2016
The question is not clear. Please explain how C is obtained.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 8 de Mzo. de 2016
Editada: Stephen23 el 8 de Mzo. de 2016
X = [1;1;1;2;2;3;3;3];
B = [5;6;7;4;1;2;2;3];
A = accumarray(X,B,[],@min);
Y = any(bsxfun(@eq,A,B.'));
C = zeros(size(B));
C(Y) = B(Y)
where the output is
C =
5
0
0
0
1
2
2
0
  2 comentarios
Tiina
Tiina el 8 de Mzo. de 2016
great thx, although i dont know wat "any" means with the bsxfun
Stephen23
Stephen23 el 8 de Mzo. de 2016
Read the any documentation.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by