Extract Common and Uncommon Matrix with Row Repetition
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Birdman
le 24 Mar 2018
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 commentaire
Stephen23
le 24 Mar 2018
@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.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!