Extract Common and Uncommon Matrix with Row Repetition
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Birdman
il 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 Commento
Stephen23
il 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrices and Arrays in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!