Find unique rows comparing 2 colums?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
% code
a = [1,200,400;
2,222,410;
3,300,409;
4, 90, 100;
5, 320, 420;
6, 200, 400;
7, 222, 410;
8, 350, 405;
9, 210, 110;
10, 50, 80;]
if you look at the matrix, the first row at column 2 and 3 has values the same as the 6th row. e.g. a(1,2:3) = a(6,2:3). I m trying to return 'a' where it doesn't include duplicates. so the first, second, sixth and seventh row should only have one instance. Previously I just used a nested for loop to take each row and compare it to all other rows but on a larger scale this is computationally expensive. I was trying out the unique function with rows but it only seems to compare individual row elements to one another rather than compare 2 columns of one row to the other rows.
0 Commenti
Risposta accettata
Thorsten
il 22 Set 2015
unique(a(:, 2:end), 'rows')
3 Commenti
Star Strider
il 22 Set 2015
Add the ‘setOrder’ argument 'stable' to keep the original order:
unique(a(:, 2:end), 'rows', 'stable')
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!