Find repeated values of one column and assign the lowest value from the group of second columns
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Voss
2023 年 2 月 19 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!