Find repeated values of one column and assign the lowest value from the group of second columns
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello, say I have the following matrix:
12709.2240000000 -1.23920000000000
12709.2240000000 -1.23530000000000
12780.2225000000 -1.23530000000000
12617.2233000000 -1.23530000000000
12564.2233000000 -1.23530000000000
12512.2233000000 -1.23530000000000
12709.2240000000 -1.23390000000000
12780.2225000000 -1.23090000000000
And I wanted to remove duplicate rows by looking at the 1st column, but assign the lowest value from the group of duplicated values to the 2nd column. So that I get the following:
12709.2240000000 -1.23920000000000
12780.2225000000 -1.23530000000000
12617.2233000000 -1.23530000000000
12564.2233000000 -1.23530000000000
12512.2233000000 -1.23530000000000
So in this case for example, I have 3 rows with 12709.224 on the 1st column, and assign -1.2392 to the 2nd column which is the lowest value from -1.2392, -1.2353, -1.2339.
I think a way to do this would be to find the index position of equal values on the 1st column and then compare the values of the 2nd column with this index position and assign these onto a new matrix, is there a better way / optimized to do this?
Thank you.
0 Commenti
Risposta accettata
Voss
il 19 Feb 2023
M = [12709.2240000000 -1.23920000000000
12709.2240000000 -1.23530000000000
12780.2225000000 -1.23530000000000
12617.2233000000 -1.23530000000000
12564.2233000000 -1.23530000000000
12512.2233000000 -1.23530000000000
12709.2240000000 -1.23390000000000
12780.2225000000 -1.23090000000000];
[gid,~,g] = unique(M(:,1),'stable');
minM2 = splitapply(@min,M(:,2),g);
M_new = [gid,minM2];
format longG
disp(M_new);
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!