Extract Common and Uncommon Matrix with Row Repetition
2 ビュー (過去 30 日間)
古いコメントを表示
I want to segregate common and uncommon matrix with row Repetition. Current matlab commands ismember and setdiff do it by removing repeated rows.
A=[2 3 4;4 1 2;3 5 7;2 8 1;2 3 4;5 5 5;4 1 2;4 1 2; 5 5 5]
B=[2 3 4;4 1 2;2 8 1]
c=ismember(B,A,'rows')
C=A(c,:)
D=setdiff(A,B,'rows')
C=[2 3 4;4 1 2;3 5 7] % Not the expected ans
D=[3 5 7; 5 5 5] %Not the expected ans (because no rows repetition).
I want the output with rows repetition. Expected output is
C=[2 3 4;4 1 2;2 8 1;2 3 4;4 1 2;4 1 2] % Common Matrix
D=[3 5 7;2 8 1;5 5 5; 5 5 5]% Uncommon matrix.
How it could be done?
0 件のコメント
採用された回答
Birdman
2018 年 3 月 24 日
c=ismember(A,B,'rows')
C=A(c,:)
D=A(~c,:)
Note that
2 8 1
row is both located at A and B matrices, therefore your D matrix should look like
D=[3 5 7;5 5 5; 5 5 5]
1 件のコメント
Stephen23
2018 年 3 月 24 日
@mukind: What would you hope to change? ismember already returns an index that does exactly what you want. And by the very definition of sets setdiff does not return duplicates.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!