Матрица смежности из списков смежности графа в matlab - PullRequest
0 голосов
/ 17 октября 2018

У меня есть списки смежности графа с 198 вершинами и 2472 ребрами.Как я могу построить матрицу смежности графа?

Спасибо за любую помощь

1 Ответ

0 голосов
/ 28 октября 2018

Поскольку у вас 198 вершин, матрица смежности равна 198 на 198, что не так уж и велико.Таким образом, мы можем просто использовать полную матрицу.Предположим, что номер вершины начинается с 1. Предположим, что ваша матрица списков смежности AL имеет следующий формат:

AL(1,:) = [1, 4, 6, -1, ...]
AL(2,:) = [2, 3, 7, 8, ...]
...

Где -1 используется, чтобы сделать столбец матрицы AL того же размера.

Вот код:

% initialize adjacency matrix
AM = zeros(198, 198)

% construct adjacency matrix 
L = length(A(1,:));
for i = 1:198
    for j = 1:L
        if AL(i,j) > 0
            AM(i,AL(i,j)) = 1;
        end
    end
end
...