Find repeated values of one column and assign the lowest value from the group of second columns
조회 수: 1 (최근 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!