- 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 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
the cyclist
2017 年 3 月 7 日
編集済み: the cyclist
2017 年 3 月 7 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Shifting and Sorting Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!