алгоритм Дейкстры с использованием Matlab - PullRequest
3 голосов
/ 10 ноября 2011

Я делаю алгоритм Дейкстры, используя Matlab.Вот мой код

W = [10 8 5 3 7 2 4 6 21];
DG = sparse([1 1 1 2 2 3 4 5 6],[2 4 3 4 5 6 6 6 1],W)

h = view(biograph(DG,[],'ShowWeights','on'))

[dist,path,pred] = graphshortestpath(DG,1,6)

set(h.Nodes(path),'Color',[1 0.4 0.4])
edges = getedgesbynodeid(h,get(h.Nodes(path),'ID'));
set(edges,'LineColor',[1 0 0])
set(edges,'LineWidth',1.5)

Проблема заключается в том, как мне получить «сброс» узлов и краев линий красного цвета.например, я хочу, чтобы это было [dist,path,pred] = graphshortestpath(DG,2,3), но график все еще показывает

[dist,path,pred] = graphshortestpath(DG,1,6). 

1 Ответ

1 голос
/ 10 ноября 2011

Это будет сделано:

set(h.edges, 'LineColor', [0.5 0.5 0.5])
set(h.edges, 'LineWidth', 0.5)
set(h.nodes, 'Color', [1 1 0.7])

Вы можете проверить все другие свойства, которые вы можете изменить, просто набрав get(h).

Также есть некоторая хорошая онлайн-информация о настройке свойств.биографических объектов:

http://www.mathworks.com/help/toolbox/bioinfo/ref/setbiograph.html

...