How do I graph an adjacency list?

조회 수: 6 (최근 30일)
RevengeOfTee
RevengeOfTee 2020년 2월 16일
댓글: matlabpasta 2020년 2월 17일
Hello everyone.
I have a graph being respresented as an Adjacency list:
AdjTable{1} = [2];
AdjTable{2} = [1, 3, 4];
AdjTable{3} = [2, 5];
AdjTable{4} = [2];
AdjTable{5} = [3];
G = AdjTable;
I was wondering how I can visually show this on a plot. I understand you're able to do this with Adjacency matrixers but can I stick to only using the lists?

채택된 답변

Walter Roberson
Walter Roberson 2020년 2월 16일
Easiest way is to convert the adjacency list into an adjacency matrix. For each entry, set the matrix true at the row number corresponding to the cell index, and the column numbers given inside the entries. Then you can use graph() or digraph() and plot() the graph or digraph object.
(It can all be done in one line, but that is advanced MATLAB. Using sparse arrays helps.)
  댓글 수: 3
Walter Roberson
Walter Roberson 2020년 2월 17일
adj(rowidx, AdjTable{rowidx}) =1;
matlabpasta
matlabpasta 2020년 2월 17일
I am attempting to solve this problem and the line works properly by outputting a 4D double like so: adj(:,:,1,1), adj(:,:,2,1) ... adj(:,:5,2). It works but I am trying to get all the true results to output into a single array rather than 10 different arrays(for this specific example). I am not sure if what I said makes sense but I have posted the code I used below.
AT is the adjacency table and G1 == adj
ss = size(AT);
for ii = 1:ss(2)
rowidx = AT{ii};
G1(rowidx, AT{rowidx}) = 1;
end

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by