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 Commenti

Note that 2xN is a matrix, and not a vector.
MC
MC il 14 Mag 2017
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(:

Accedi per commentare.

 Risposta accettata

Stephen23
Stephen23 il 14 Mag 2017
Modificato: Stephen23 il 14 Mag 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 Commenti

MC
MC il 14 Mag 2017
Modificato: MC il 14 Mag 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!
Mr M.
Mr M. il 6 Feb 2018
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.
LO
LO il 12 Apr 2019
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

Accedi per commentare.

Più risposte (0)

Prodotti

Tag

Richiesto:

MC
il 14 Mag 2017

Modificato:

il 6 Mar 2022

Community Treasure Hunt

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

Start Hunting!

Translated by