How to convert the X & Y value in a matrix format?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Asyran Abdullah
am 26 Sep. 2018
Kommentiert: Asyran Abdullah
am 26 Sep. 2018
Hi, Given X and Y as follow:
area_length = 100;
area_width = area_length ;
x = round((area_length - 1) * (rand - 0) / (1 - 0) + 1);
y = round((area_width - 1) * (rand - 0) / (1 - 0) + 1);
How to convert the X & Y value into matrix format? Because i want to add a weights for make i possible to perform a shortest path.
x= ;
y= ;
weights = rand ;%-ok
G = graph(x,y,weights);
plot(G,'EdgeLabel',G.Edges.Weight);
Thanks for your help
6 Kommentare
KSSV
am 26 Sep. 2018
YOu need to have those points to get the shortest path........do you have those points?
Akzeptierte Antwort
Walter Roberson
am 26 Sep. 2018
Bearbeitet: Walter Roberson
am 26 Sep. 2018
Your x and y calculated like the above define the coordinates of a single point. To do shortest path, you need multiple points.
I suggest,
N = 50; %nodes
cutoff = 25;
area_length = 100;
area_width = area_length ;
x = round((area_length - 1) * (rand(N,1) - 0) / (1 - 0) + 1);
y = round((area_width - 1) * (rand(N,1) - 0) / (1 - 0) + 1);
A = squareform( pdist([x, y]) );
A(A > cutoff) = 0;
%and do any other tweaking for the A matrix
G = digraph(A);
plot(G, 'XData', x, 'YData', y);
and you can do shortest path calculations on G
With the above code, you could also use G = graph(A) to create undirected graphs, but if you do so then you would not be able to have asymmetric distance matrix. In the real world, there are cases where the transmit and receive path might not be the same.
1 Kommentar
Weitere Antworten (1)
KSSV
am 26 Sep. 2018
Simple rand..gives you a single number....try rand(N,1) with N as desired number of points.
Siehe auch
Kategorien
Mehr zu Graph and Network Algorithms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!