Remove consecutive duplicates from matrix
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Simon Meyer
el 26 de Nov. de 2020
Comentada: Ameer Hamza
el 30 de Nov. de 2020
Hello,
i need to remove duplicates form my matrix, but only if they are consecutive duplicates.
Lets suppose i have the following list of coordinates in a matrix, with for example x, y and z coordinates, that is describing a path.
A=[ 1, 0, 3
2, 1, 3
2, 1, 3
2, 2, 3
1, 0, 3]
Now, you can see that the point [2, 1, 3] is a consecutive duplicate, that I want to remove (because it's unuseful information).
But I do not want to remove the (duplicate) row at the end, [1, 0, 3], even if this row is already there in the beginning.
Also, the sorting shouldn't be changed. The desired output should be
A=[ 1, 0, 3
2, 1, 3
2, 2, 3
1, 0, 3]
I cannot use 'unique' for that, because that would filter also the last line.
What is the smartest way to do that?
Thank you very much for your help!
0 comentarios
Respuesta aceptada
Ameer Hamza
el 26 de Nov. de 2020
Try this
A=[ 1, 0, 3
2, 1, 3
2, 1, 3
2, 2, 3
1, 0, 3];
idx = find(~any(diff(A), 2))+1;
A(idx, :) = [];
4 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Elementary Math en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!