How to find subgroup min or max

1 vue (au cours des 30 derniers jours)
Tiina
Tiina le 8 Mar 2016
Commenté : Stephen23 le 8 Mar 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 commentaire
Jan
Jan le 8 Mar 2016
The question is not clear. Please explain how C is obtained.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 8 Mar 2016
Modifié(e) : Stephen23 le 8 Mar 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 commentaires
Tiina
Tiina le 8 Mar 2016
great thx, although i dont know wat "any" means with the bsxfun
Stephen23
Stephen23 le 8 Mar 2016
Read the any documentation.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by