Optimization of a nested loop

Asked by Italo on 22 Jun 2012
Latest activity Answered by Andrei Bobrov on 22 Jun 2012

Hello guys I wrote the following code, but it takes ages to complete. Could you please help me optimizing it? A and B are matrixes

for i=1:length(A)
    for j=1:length(B)
        CCI = CCI + heaviside(norm(A(i,:)-B(j,:)));
    end
end

Thanks

0 Comments

Italo

Products

No products are associated with this question.

2 Answers

Answer by Sean de Wolski on 22 Jun 2012

Not necessarily faster, prettier, less confusing or better in any way with the exception of being on one line and containing the awesomeness that is bsxfun:

CCI2 = sum(sum(heaviside(sqrt(sum(bsxfun(@minus,A,reshape(B',1,size(B,2),size(B,1))).^2,2)))))

0 Comments

Sean de Wolski
Answer by Andrei Bobrov on 22 Jun 2012

other variant

CCI = (nnz(any(bsxfun(@minus,A,reshape(B',1,size(B,2),[])),2)) + size(A,1)*size(B,1))/2;

0 Comments

Andrei Bobrov

Contact us