distance between randomly selected nodes

for i=1:1:n
temp_rand=rand;
if(temp_rand<= some condition)
count_n=count_n+1;
S(i).type='C';
C(cc).xd=S(i).xd;
C(cc).yd=S(i).yd;
plot(S(i).xd,S(i).yd,'*');
cc=cc+1;
In the above code some nodes are selected from randomly distributed nodes which satisfy the temp_rand condition. Please anyone help me how to find out distance between these randomly nodes only.

2 件のコメント

Geoff Hayes
Geoff Hayes 2019 年 3 月 18 日
rem - so you want to find the distances between all nodes in the C matrix? Or do you want to find the distance between a different set of nodes?
rem ng
rem ng 2019 年 3 月 18 日
@ Geoff Hayes yes Sir you got the exact question which I am eagerly waiting answer for that. I want to find disttance between all nodes in the C matrix itself.

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2019 年 3 月 18 日

0 投票

xt = [CC.xd]; yt = [CC.yd];
distances = squareform( pdist([xt(:), yt(:)]) );

その他の回答 (1 件)

Geoff Hayes
Geoff Hayes 2019 年 3 月 18 日

1 投票

rem - wouldn't the distances be calculated something like the following
distancesBetweenNodes = zeros(length(C)); % square matrix
for k = 1:length(C)
for j = k+1:length(C)
dist = sqrt((C(k).xd - C(j).xd)^2 + (C(k).yd - C(j).yd)^2); % use your own distance measure here
distancesBetweenNodes(k,j) = dist;
distancesBetweenNodes(j,k) = dist; % matrix is symmetric
end
end

1 件のコメント

rem ng
rem ng 2019 年 3 月 18 日
@ Geoff Thanks Sir. I will apply in my code and will update the feedback.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2019 年 3 月 18 日

回答済み:

2019 年 3 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by