how can i find identical rows in a matrix

조회 수: 147 (최근 30일)
AA
AA 2015년 3월 21일
댓글: AA 2015년 3월 21일
I have a 158x7 matrix. I want to find if there is at least one row which is identical.
  댓글 수: 2
Geoff Hayes
Geoff Hayes 2015년 3월 21일
AA - please describe what you mean by similar. Do you meant that the two rows are identical or share the same values or share a pattern of numbers? Be clear about what the problem is you are trying to solve. Use the question body to include more than just a repeat of your question header.
AA
AA 2015년 3월 21일
ok i changed the question. thanks for the advice

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

채택된 답변

Konstantinos Sofos
Konstantinos Sofos 2015년 3월 21일
편집: Konstantinos Sofos 2015년 3월 21일
Use unique() to find the distinct row values. If you end up with fewer rows, there are duplicates. It'll also give you indexes of one location of each of the distinct values. All the other row indexes are your duplicates.
x = [
1 1
2 2
3 3
4 4
2 2
3 3
3 3
];
[u,I,J] = unique(x, 'rows', 'first')
hasDuplicates = size(u,1) < size(x,1)
ixDupRows = setdiff(1:size(x,1), I)
dupRowValues = x(ixDupRows,:)

추가 답변 (1개)

Star Strider
Star Strider 2015년 3월 21일
Use the unique function with the 'rows' option.
  댓글 수: 2
AA
AA 2015년 3월 21일
would it be possible to give me an example?
AA
AA 2015년 3월 21일
B = unique(A,'rows');
As a check, if size(B) ~= size(A), then you have at least two identical rows.

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

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by