How to filter duplicate entries
    4 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Mekala balaji
      
 am 8 Aug. 2018
  
    
    
    
    
    Kommentiert: Mekala balaji
      
 am 9 Aug. 2018
            Hi,
I have below entries (cell array matrix),
FirstEntry  SecondEntry Index Score
A               B        5     25
C               D        62    8  
C               K        31    2
B               A        6     25
K               C        9     2
The entry A & B (in row 1)is same as B & A(in row 4) (without consider its first entry or second entry), I only want to keep one entry for this kind of entries. Likewise, row 3 (c & K) is same as row 5 (K & C)
My desired output:
FirstEntry  SecondEntry Index Score
A               B        5     25
C               D        62    8  
C               K        31    2
Kindly some one help, many thanks in advance,
0 Kommentare
Akzeptierte Antwort
  Adam Danz
    
      
 am 8 Aug. 2018
        
      Bearbeitet: Adam Danz
    
      
 am 8 Aug. 2018
  
      Your original cell array is named 't'.
t = {
'A'              'B'        5     25
'C'               'D'        62    8  
'C'               'K'        31    2
'B'               'A'        6     25
'K'               'C'        9     2};
'unqIdx' is an index of row numbers of 't' that are unique.
'desired' is your unique array without duplicates.
[~, unqIdx] = unique(cellfun(@strcat, sort(t(:,[1,2])')'), 'rows'); 
desired = t(unqIdx, :);
5 Kommentare
  Adam Danz
    
      
 am 9 Aug. 2018
				I see. Here's the updated code that works with the old and new dataset. I could no longer do it in 1 line of code. The new version uses 2 lines and the use of cellfun() is no longer necessary. I also added the 'stable' parameter to unique() so that your final unique array is in the same order as your input array.
tSort = sort(t(:,[1,2])')';
[~, unqIdx] = unique(strcat(tSort(:,1), tSort(:,2)), 'rows', 'stable')
t(unqIdx, :)
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!