- Use sort to sort the values in each row
- Use diff to get the difference between consecutive values in each row
- Use any to check if any of those differences equal zero (indicating a duplicate values)
- Use the output of the any command, which is a logical index, to delete the rows that have duplicates
how do I remove rows with duplicated values?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
jesus escareno
el 7 de Mzo. de 2017
Comentada: Otto Liljansalo
el 14 de Mzo. de 2024
let say i have matrix A
A = [1 2 3 4 5;
3 5 7 9 11;
1 1 4 5 7;
3 5 6 6 9;
1 4 10 15 16]
and wanted to remove all rows with values that repeated with each other. Then A will become
A = [1 2 3 4 5;
3 5 7 9 11;
1 4 10 15 16]
Thanks for the help in Advance
0 comentarios
Respuesta aceptada
the cyclist
el 7 de Mzo. de 2017
Editada: the cyclist
el 7 de Mzo. de 2017
Here is a one-liner:
A(any(diff(sort(A,2),[],2)==0,2),:)=[];
If you are certain that each row is already in numerical order (as in your example), you can skip the sorting step.
The algorithm is the following:
3 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Shifting and Sorting Matrices 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!