How can I simplify this For loop?
Show older comments
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
on 4 Nov 2015
0 votes
pdist2 will do the work
Categories
Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!