Paths search in a graph
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have the following code to generate a graph from a matrix :
B=randi([0 1], i*2,j);
nNodeCol = size(B,2); % one node for each column of B
nNodeLine = size(B,1)/2; % one node for every two lines of B
% First the column nodes, then the line nodes:
nodeNames = [cellstr(strcat('O', num2str((1:size(B,2))'))) ; cellstr(strcat('S', num2str((1:size(B,1)/2)')))];
% Adjacency matrix adj, adj(i,j)=1 means there is an edge from node#i to node#j:
adj = zeros(nNodeCol+nNodeLine); % square matrix which size is the number of nodes
adj(1:nNodeCol, nNodeCol+1:end) = B(1:2:end,:)'; % edge from a column node to a line node is added for all the 1 in the first line of the node in the matrix
adj(nNodeCol+1:end, 1:nNodeCol) = B(2:2:end,:); % edge from the line node to a column node is added for all the 1 in the second line of the node in the matrix
% Creation of the graph:
G = digraph(adj,nodeNames);
plot(G);
I want to know how can I search for a path between two nodes in G and show it ? and also how can i search for all the paths having a node n as a source ? thank you.
0 Kommentare
Antworten (1)
Walter Roberson
am 24 Jun. 2017
Shortest path for two given nodes: https://www.mathworks.com/help/matlab/ref/graph.shortestpath.html
All paths having node n as source: https://www.mathworks.com/help/matlab/ref/graph.shortestpathtree.html
1 Kommentar
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!