"symmetrical" rows of matrix
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
I have integer matrix  A (nA x c)  with even number of columns (e.g. mod(c,2) = 0) and unique rows.
How to effectivelly (by speed and memory optimized function "symmetricRows") find  the "symmetric" rows of matrix A  iA1 and iA2, where "symmetric" rows iA1 and iA2 are defined as:
all(A(iA1,1:end/2) == A(iA2,end/2+1:end) & A(iA1,end/2+1:end) == A(iA2,1:end/2),2) = true
Example:
A = [1 1 1 1; 
     2 2 2 2; 
     1 2 3 4;
     4 3 2 1; 
     2 2 3 3; 
     3 4 1 2; 
     3 3 2 2]
[iA1, iA2] = symmetricRows(A)
  iA1 =
        1
        2
        3
        5 
   iA2 =
        1
        2
        6
        7
Typical size of matrices A: nA ~ 1e4-1e6, c ~ 60 - 120
The problem is motivated by pre-processing of large dataset, where "symmetrical" rows are irrelevant from the point of user defined distance metric.
0 Kommentare
Akzeptierte Antwort
  Michal
      
 am 11 Feb. 2020
        
      Bearbeitet: Michal
      
 am 11 Feb. 2020
  
      
      4 Kommentare
  the cyclist
      
      
 am 11 Feb. 2020
				Yeah, I should have mentioned that I did my testing on MATLAB Online, so it's probably not the most powerful platform. :-)
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Logical 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!