How to find duplicate values in 2d matrix?
6 views (last 30 days)
Show older comments
Hello,
I have the following matrix
M =[ 1540 1685 6.90000000000000 24.2000000000000 14.6000000000000;
1540 1700 9.90000000000000 15.5000000000000 17.9000000000000;
1540 1701 9.90000000000000 12.4000000000000 17.9000000000000;
1540 1685 6.90000000000000 23.5000000000000 14.600000000000
1540 1700 9.90000000000000 15 17.9000000000000;
1540 1701 9.90000000000000 13.3000000000000 17.9000000000000;
1540 1680 6.90000000000000 26.2000000000000 14.4000000000000;
1540 1689 6.90000000000000 26.1000000000000 14.6000000000000;
1540 1680 6.90000000000000 24 14.6000000000000;
1540 1680 6.90000000000000 24 14.5000000000000;
1540 1688 7 23.5000000000000 14.6000000000000;
]
And I would like to identify the duplicates of that matrix based on the first two colums and extract them to furher operations. Thus, I would like to have a way to get a sub-matrices of the form
M11 = [ 1540 1700 9.90000000000000 15.5000000000000 17.9000000000000;
1540 1700 9.90000000000000 15 17.9000000000000;
]
M22 =[ 1540 1680 6.90000000000000 26.2000000000000 14.4000000000000;
1540 1680 6.90000000000000 24 14.5000000000000;
]
Thanks in advance
2 Comments
Accepted Answer
Rik
on 26 Jul 2019
Edited: Rik
on 26 Jul 2019
You can indeed use findgroups. You should supply the first two columns as separate inputs.
G=findgroups(M(:,1),M(:,2));
Then I would suggest looping through the group IDs and fill a cell array. Don't use numbered variables, because they are hard to use in further analysis.
2 Comments
Rik
on 26 Jul 2019
Edited: Rik
on 26 Jul 2019
That should work. You can also use ismember to generate the idx vector (in which case that would become a logical vector). You can also more generally use M(idx,:) instead of specifying each column separately.
Also, starting off with subM=cell(1,max(G)); is probably a good idea.
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!