Diagonal Elements of the Square Matrix
    2 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
I am calculating Sorensen-Dice coefficient (2|A and B|/|A|+|B|) but diagonal elements (intersection with itself) of the square matrix is equal to zero. It is not a big problem but how can I convert them into ones. Thanks for the help.
v = [1 1 0 0 1 1 0; 1 1 0 1 0 0 0; 0 0 0 0 0 1 1]
d = squareform(pdist(v,@(a,b)(2 * sum((a.*b),2))./(sum(a) + sum(b,2))));
0 Commenti
Risposta accettata
  John D'Errico
      
      
 il 7 Ott 2017
        If the diagonal is already EXACTLY zero, then this will suffice:
M = M + eye(size(M));
If they are only approximately zero, then you could do this:
M(find(eye(size(M)))) = 1;
For example,
M = magic(5)
M =
  17    24     1     8    15
  23     5     7    14    16
   4     6    13    20    22
  10    12    19    21     3
  11    18    25     2     9
M(find(eye(size(M)))) = 1;
M
M =
   1    24     1     8    15
  23     1     7    14    16
   4     6     1    20    22
  10    12    19     1     3
  11    18    25     2     1
Più risposte (1)
Vedere anche
Categorie
				Scopri di più su Dimensionality Reduction and Feature Extraction 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!


