Finding Duplicate rows?
Show older comments
I want to find duplicate rows in my Nx2 matrix regardless of order. For instance if I were to have a matrix A
[ 1 2;
2 3;
2 1;
3 5;
4 6]
I would like to be told for instance that rows 1 and 3 are the same. Is there a quick and easy way to do this?
Thank you.
Accepted Answer
More Answers (1)
Stephen23
on 8 Apr 2019
Simpler using hist (or its more recent equivalents):
>> A = [1,2;2,3;2,1;3,5;4,6;5,3] % I added an extra row
A =
1 2
2 3
2 1
3 5
4 6
5 3
>> [U,~,X] = unique(sort(A,2),'rows');
>> [N,E] = hist(X,1:max(X));
>> C = arrayfun(@(x)find(X==x),E(N>1),'uni',0);
>> C{:}
ans =
1
3
ans =
4
6
2 Comments
Pedro Guevara
on 6 Jan 2021
Hi. I have one. I also need something similar to the author of the Post, however I require that each row be exactly the same (not inverted as requested by the author), that is:
A = [1,2; % This row (1) is exactly the same as (3)
2,3;
1,2; % This row (3) is exactly the same as (1)
3,5; % This row (4) is exactly the same as (6)
4,6;
3,5] % This row (6) is exactly the same as (4)
What would I have to modify in your code to make it do what I need? Thanks.
Stephen23
on 7 Jan 2021
"What would I have to modify in your code to make it do what I need?"
Remove the sort function.
Categories
Find more on Mathematics in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!