필터 지우기
필터 지우기

How to determine shortest path to the CH?

조회 수: 1 (최근 30일)
Asyran Abdullah
Asyran Abdullah 2018년 9월 5일
Hi, i need some help, how to build the edge in random nodes and determine the shortest path to CH as following figure.
Code.
clc;
clear all;
N=10;
fontSize = 12;
data = rand(N,2); % Randomly generated n no. of nodes
x = data(:,2)*100;
y = data(:,1)*100;
plot(x, y, 'bo', 'LineWidth', 1, 'MarkerSize', 8);
grid on
axis square;
xlabel('X', 'FontSize', fontSize);
ylabel('Y', 'FontSize', fontSize);
for k = 1 : N
text(x(k), y(k), num2str(k), 'FontSize', 12, 'Color', 'b');
end
node=struct('id',{},'x',{},'y',{},'dist',{},'link',{'1'});
for i=1:N
node(i).id=i;
node(i).x=x(i);
node(i).y=y(i);
text(x(i),y(i),num2str(i));
end
ch1=ceil(rand(1)*N);
text(node(ch1).x,node(ch1).y,['CH1'],'Color' ,'r');
for i = 1:N
node(i).dist = sqrt(((node(ch1).x - node(i).x)^2 + (node(ch1).y - node(i).y)^2));
a(i)=node(i).dist;
disp(node(i).dist);
end
A=sort(a,'descend');
a=1;
for i = 1:N
node_distance(a) = node(i).dist;
a = a+1;
end
Maximum_distance = max(node_distance);
for i = 1:N
if node(i).dist == max(node_distance)
next_header = node(i).id;
end
end
Please advice,
Thanks

답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by