Я хочу рассказать о структуре сети (сети) в MATLAB. У меня есть список, содержащий to-from nodes для каждой ветви. У меня нет координат для узлов, и топология системы изменяется для каждой моделировки.Как построить матрицу связности/смежности в Matlab?
Мне также нужно иметь возможность назначать разные цвета для различных линий/узлов, визуализировать проблемы напряжения или перегрузки и т. Д., Аналогично тому, что я сделал с помощью биографии (код ниже).
Функция БИОГРАФИЯ почти идеальна. Недостатком является то, что линии всегда выходят из «нижней части» блока предков и «сверху» потомка. Поскольку предок всегда отображается над его потомками, графики иногда очень хаотичны (для больших систем).
Я попытался изменить свойство «LayoutType» из биографии по умолчанию «иерархическое» как на «радиальное», так и на «равновесие», но это дает еще худшие результаты.
Является ли то, что я прошу, возможно? Это не должно быть идеальным решением, любые улучшения были бы замечательными.
Это код, который я использую сейчас:
%% Plot biograph
Sys = sparse(from,to,1,s,s);
SysTri = tril(Sys + Sys');
bg = biograph(SysTri,[],'ShowArrows','off','ShowWeights','off');
h = view(bg);
%% Color faulted line:
set(h.nodes(newFaultNodes),'Color',[1 0.4 0.4]);
fowEdges = getedgesbynodeid(h,get(h.Nodes(newFaultNodes),'ID'));
revEdges = getedgesbynodeid(h,get(h.Nodes(fliplr(newFaultNodes)),'ID'));
edges = [fowEdges;revEdges];
set(edges,'LineColor',[1 0 0])
set(edges,'LineWidth',2)
Вы можете попробовать [grphviz4matlab] (http://code.google.com/p/graphviz4matlab/) – Oleg
Похоже grphvis4matlab может хорошо работать. Проблема в том, что я не могу заставить его работать. Я установил graphviz-2.30.1 и попытался выполнить описания на веб-сайте. Функции Matlab работают, но они не могут найти программы graphviz. Я получаю такие сообщения, как: «neato» не распознается как внутренняя или внешняя команда, операционная программа или командный файл. Пожалуйста, установите или обновите graphViz. Я считаю, что у меня есть файлы в правильных папках, и я попытался переустановить graphViz. Спасибо в любом случае =) –
Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/11037499/visualize-a-graph-in-matlab) – Tokkot