Remove duplicate rows from matrix

Hello
I have a 2xN matrix where each column represent the x and y coordinates of a 2D point. I need to remove any duplicate point from this matrix, any suggestions?
Best regards MC

4 Comments

Note that 2xN is a matrix, and not a vector.
My bad, I meant a matrix:)
It would be very nice of you, if you could change the title of this question, it misleads others who are actually looking for the answers related to 'vector'. Thank you(:

Sign in to comment.

 Accepted Answer

Stephen23
Stephen23 on 14 May 2017
Edited: Stephen23 on 14 May 2017
It is trivial to use unique to get only the unique rows of matrix. Because your matrix is arranged 2xN, simply transpose before and after:
unique(M.','rows').'

5 Comments

MC
MC on 14 May 2017
Edited: MC on 14 May 2017
Thanks this worked almost! I manually checked the matrix, there is one part where there is 4 equal points, the command unique removes only two of them.
I just run it twice and it works fine!
what does it mean .' ? why not just ' is the transpose?
@Mr M, Why don't you look it up in the doc.
If your matrix is made of only non-complex number the difference does not matter, but if you may have complex numbers in your matrix, using ' instead of .' will lead to problems.
Stephen is correct to use .' in his answer.
how can I keep all values of each row ?
I don't know if you still alive, stephen. I wish I could hug you now!
Thx for the super solution

Sign in to comment.

More Answers (0)

Products

Tags

Asked:

MC
on 14 May 2017

Edited:

on 6 Mar 2022

Community Treasure Hunt

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

Start Hunting!