MATLAB Answers


How can I Improve the efficiency of the following code?

Asked by Emanuele Massaro on 9 Jul 2015
Latest activity Edited by Emanuele Massaro on 9 Jul 2015
Hello I have this loop
id = unique(DATA(:,3));
rg = zeros(length(id),4);
for i = 1 : size(id,1)
x = y(DATA(:,3)==id(i));
rg(i,1) = sum(sqrt((Y(x,4) - Xm(id(i),1)).^2 + (Y(x,3) - Xm(id(i),2)).^2 ))./size(x,1);
rg(i,2) = id(i);
rg(i,3) = Xm(id(i),1);
rg(i,4) = Xm(id(i),2);
It is a very slow process. Is there a way to improve it? In particular I would like to avoid the first line after the loop and do it with accumarray or similar function. Thank you.


Sign in to comment.


0 Answers