Как построить график матрицы смежности с помощью MATLAB
Я хочу создать график, показывающий связи между узлами из матрицы смежности, как показано ниже.
gplot кажется лучшим инструментом для этого. Однако, чтобы использовать его, мне нужно передать координаты каждого узла. Проблема в том, что я не знаю, где должны быть координаты, я надеялся, что функция сможет найти хороший макет для меня.
Например, вот мой вывод с использованием следующих произвольных координат:
A = [1 1 0 0 1 0;
1 0 1 0 1 0;
0 1 0 1 0 0;
0 0 1 0 1 1;
1 1 0 1 0 0;
0 0 0 1 0 0];
crd = [0 1;
1 1;
2 1;
0 2;
1 2;
2 2];
gplot (A, crd, "o-");
Который трудно прочитать, но если я немного поиграюсь с координатами и поменяю их на следующие, это станет намного более читабельным.
crd = [0.5 0;
0 1;
0 2;
1 2;
1 1;
1.5 2.5];
Я не ожидаю идеально оптимизированных координат или чего-то еще, но как я могу сказать MATLAB, чтобы он автоматически вычислял для меня набор координат, который выглядит хорошо, используя какой-то видалгоритм поэтому я могу построить график, похожий на верхнюю картинку.
Заранее спасибо.