mu(i,j) = sign( E(D(i)) - E(D(j)) ) == sign( M(D(i)) - M(D(j)) )
However, we do not have enough information about the meaning of E or M to fully optimize the computation. I suspect it might be possible to do all of the comparisons at the same time over an array, zero the diagonal, sum the result, divide by n*(n-1), multiply by 100 -- the 2 would cancel in such an implementation, I think.
mu = sign(bsxfun(@minus, E(:), E(:).')) == sign(bsxfun(@minus, M(:), M(:).'));
n = size(mu,1);
mu(1:n+1:end) = 0;
F = 100 * sum(mu(:)) / (n*(n+1));
Best Answer