How can I simplify this For loop?

2 views (last 30 days)
Kenneth Wong
Kenneth Wong on 4 Nov 2015
Answered: Noam on 4 Nov 2015
Hello. I am facing a problem running this code to completion as the size of T is very big (over a million rows). While the time taken to compute one iteration isn't very long (0.2118s); assuming 1 million data points, the code will still take 100,000s. Thank you for your help!
function Xout = selectpoints(T,Xin)
for k = 1 : length(T)
dist = (Xin(:,1)-T(k,1)).^2 + (Xin(:,2)-T(k,2)).^2 + (Xin(:,3)-T(k,3)).^2;
[~,ind] = min(dist);
nearest(k) = ind;
end
Xout = Xin(nearest,:);

Answers (1)

Noam
Noam on 4 Nov 2015
pdist2 will do the work

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!