Hi,
I have a piece of code as part of a bigger piece that is inefficient. The code is called many times and is a bottleneck in the proces also according to the matlab profiler. I feel it can be done faster. The code looks as follows
clear all
l1=rand(1,10);
l2=rand(1,10);
p1=rand(3,10);
p2=rand(3,10);
[c,ind]=min([l1;l2]);
r(:,:,1)=p1;
r(:,:,2)=p2;
for it=1:10
p3(:,it)=r(:,it,ind(it));
end
I would like to do the for loop in one go (so remove the for loop). l1 and l2 are distances (l1 is norm of p1 and l2 is norm of p2), and p1, p2 are 3d coordinates. The goal of the code is to pick the coordinates of p1, p2 from the one with the smallest distance.