# How to remove duplicate rows in a matrix by considering the repeated values in a specific column?

조회 수: 139(최근 30일)
Gayan Lankeshwara 2019년 10월 23일
댓글: Zach Williams 2021년 4월 23일
%% consider the following example.
A = [1 2 4; 3 5 7;1 5 8; 2 9 4]
In matrix A, column 1 has a duplicate value which is 1. I need to keep the first met value and remove the rest accordingly. At the same time, the indices of non-duplicates should not be changed.
The possible solution should be,
A_without_dup = [1 2 4;3 5 7;2 9 4]
%% only the final row is removed because a duplicate is found in that row based on the value of column 1 in A.
Thanks.

댓글을 달려면 로그인하십시오.

### 채택된 답변

You can use the unique function to return you the index of the unique values in the first column.
Use the stable keyword so the order is preserved. You can then use the index to keep the unique rows.
[~,uidx] = unique(A(:,1),'stable');
A_without_dup = A(uidx,:);
##### 댓글 수: 3표시숨기기 이전 댓글 수: 2
Zach Williams 2021년 4월 23일
David, thank you for also sharing your simplified solution!

댓글을 달려면 로그인하십시오.

R2019a

### Community Treasure Hunt

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

Start Hunting!

Translated by