s = randi( 5, 1, 10 );
# method 1
sel = s < max(s(:)); % select relevant entries
n=sum( bsxfun( @eq, s, s' ), 1 );
r1 = sum( n( sel ) .* s(sel).^2 ) ./ sum( s.*n )
# method 2
us = unique( s );
n2 = hist( s, us );
sel2 = us < max(us);
row = @(x) x(:).'; %//' convert to row vector
col = @(x) x(:); %// convert to col vector
r2 = ( row( us(sel2).^2 ) * col( n2(sel2).^2 ) ) / ( row( us ) * col( n2.^2 ) )
cyA9IHJhbmRpKCA1LCAxLCAxMCApOwoKIyBtZXRob2QgMQpzZWwgPSBzIDwgbWF4KHMoOikpOyAlIHNlbGVjdCByZWxldmFudCBlbnRyaWVzIApuPXN1bSggYnN4ZnVuKCBAZXEsIHMsIHMnICksIDEgKTsKcjEgPSBzdW0oIG4oIHNlbCApIC4qIHMoc2VsKS5eMiApIC4vIHN1bSggcy4qbiApCgojIG1ldGhvZCAyCnVzID0gdW5pcXVlKCBzICk7Cm4yID0gaGlzdCggcywgdXMgKTsKc2VsMiA9IHVzIDwgbWF4KHVzKTsKcm93ID0gQCh4KSB4KDopLic7ICUvLycgY29udmVydCB0byByb3cgdmVjdG9yCmNvbCA9IEAoeCkgeCg6KTsgJS8vIGNvbnZlcnQgdG8gY29sIHZlY3RvcgpyMiA9ICggcm93KCB1cyhzZWwyKS5eMiApICogY29sKCBuMihzZWwyKS5eMiApICkgLyAoIHJvdyggdXMgKSAqIGNvbCggbjIuXjIgKSApCgo=