필터 지우기
필터 지우기

Paths search in a graph

조회 수: 2 (최근 30일)
stam dadi
stam dadi 2017년 6월 24일
편집: stam dadi 2017년 6월 26일
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.

답변 (1개)

Walter Roberson
Walter Roberson 2017년 6월 24일
  댓글 수: 1
stam dadi
stam dadi 2017년 6월 26일
편집: stam dadi 2017년 6월 26일
I found that , but the problem is when I use it get the paths using a character vector containing the nodes names as an input like this :
v=shortestpath(G,'O1','S2');
I get the following error :
Error using digraph/validateNodeID (line 503)
Graph does not contain a node named 'O1'.
Error in digraph/shortestpath (line 57)
src = validateNodeID(G, s);
Error in PGM (line 25)
v=shortestpath(G,'O1','S2');

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Graph and Network Algorithms에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by