Effacer les filtres
Effacer les filtres

finding unique rows with largest value in 3rd column

6 vues (au cours des 30 derniers jours)
Mahi Nazir
Mahi Nazir le 19 Déc 2013
Suppose I have a matrix
A=
1 2 3
1 3 8
2 1 3
2 1 5
2 2 8
1 2 9
4 3 2
I want to find a matrix which has unique first column and largest 3rd column.. So my resultant matrix should be
1 2 9
2 2 8
4 3 2
Any help will be highly appreciated!
  2 commentaires
Sean de Wolski
Sean de Wolski le 19 Déc 2013
So the order of the first two columns doesn't matter?
Mahi Nazir
Mahi Nazir le 19 Déc 2013
No order doesn't matter. Actually second column is not useful. Uniqueness is based on first column and one having largest value of 3rd column is selected.

Connectez-vous pour commenter.

Réponse acceptée

Sean de Wolski
Sean de Wolski le 19 Déc 2013
Modifié(e) : Sean de Wolski le 19 Déc 2013
Assuming that the order of the first two columns doesn't matter and that your expected matrix is missing [1 3 8]
Old/clarified in comments
x = [1 2 3
1 3 8
2 1 3
2 1 5
2 2 8
1 2 9
4 3 2];
[uv,~,idx] = unique(sort(x(:,[1 2]),2),'rows');
v = accumarray(idx,x(:,3),[],@max);
vv = [uv v]
vv =
1 2 9
1 3 8
2 2 8
3 4 2
  5 commentaires
Mahi Nazir
Mahi Nazir le 19 Déc 2013
Thanks! I want to preserve the second column information, I need that in future... so I want all the 3 columns in my answer... I am sure it must be a small modification but I am unable to do it
Sean de Wolski
Sean de Wolski le 19 Déc 2013
Well do you want the first occurrence of the second column or the maximum one? etc. I guess, how do you wish to pick the second value (e.g. 2 1 v. 2 2)

Connectez-vous pour commenter.

Plus de réponses (1)

Muhammet Bozkaya
Muhammet Bozkaya le 20 Nov 2017
Modifié(e) : Muhammet Bozkaya le 20 Nov 2017
Simple answer for this case.
First sort rows with ascending 1st column and descending 3rd column(column you want to get the max), then see take unique...
A=[1 2 3
1 3 8
2 1 3
2 1 5
2 2 8
1 2 9
4 3 2];
A=sortrows(A,[1 -3]);
[~,idx]=unique(A(:,1));
A=A(idx,:);
result: 1 2 9
2 2 8
4 3 2

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by