How to calculate distance from one point base to multipoints and save it as a row?

1 view (last 30 days)
Hello Everyone,
I need your help in order to overcome my problem, here is my code:
AP_dist = zeros(N);
for i = 1:N
for j=1:1
p=line([MS_loc(i,1) AP_pos(1,1)], [MS_loc(i,2) AP_pos(1,2)],'Marker','.','LineStyle','-.');
X= [MS_loc(i,1),AP_pos(1,1);MS_loc(i,2),AP_pos(1,2)];
AP_dist= pdist(X,'euclidean')
pause(1)
end
end

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 24 Jun 2013
Edited: Andrei Bobrov on 24 Jun 2013
AP_dist= sqrt(sum(bsxfun(@minus,MS_loc,AP_pos).^2,2));
OR
for jj = size(MS_loc,1):-1:1
AP_dist(jj,1) = pdist([MS_loc(jj,:);AP_pos]);
end
OR
AP_dist = arrayfun(@(ii)pdist([MS_loc(ii,:);AP_pos]),(1:size(MS_loc,1))');

More Answers (1)

Walter Roberson
Walter Roberson on 24 Jun 2013
AP_dist(i) = pdist(X,'euclidean');
  1 Comment
sarah nik
sarah nik on 24 Jun 2013
thank you for this. now i wonder whether i use the correct formula to calculate distance. because it gives different value. please help me AP_dist(i) = pdist(X,'euclidean'); or AP_dist(i) = sqrt((MS_loc(i,1) - AP_pos(j,1))^2 ... + (MS_loc(i,2) - AP_pos(j,2))^2);

Sign in to comment.

Categories

Find more on Operators and Elementary Operations 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!