ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

matlab实现又向图与无向图的最短路径

2022-04-23 16:31:29  阅读:152  来源: 互联网

标签:set 实现 DG 路径 edges matlab path LineWidth


无向图的最短路径

s = [9 9 1 1 2 2 2 7 7 6 6 5 5 4];
t = [1 7 7 2 8 3 5 8 6 8 5 3 4 3 ];
w = [4 8 3 8 2 7 4 1 6 6 2 14 10 9];%权重
G = graph(s,t,w);%生成稀疏矩阵
plot(G,'EdgeLabel',G.Edges.Weight,'LineWidth',2);
[P,D] = shortestpath(G,9,4);
%%高亮显示路径
myplot = plot(G,'EdgeLabel',G.Edges.Weight,'LineWidth',2);
highlight(myplot,P,'EdgeColor','r');

image

有向图的最短路径

clc,clear
w = [10,5,2,1,4,6,7,3,9,2];
DG = sparse([1,1,2,2,3,4,4,5,5,5],[2,5,5,3,4,3,1,2,3,4],w);
[dist,path,pred] = graphshortestpath(DG,1,3)
% biograph生成图对象,view显示该图
point_name = ['1','2','3','4','5'];
h = view(biograph(DG,point_name,'ShowWeights','on'))
% 将最短路径的节点和边缘标记为红色并增加线宽
% getedgesbynodeid得到图h的指定边的句柄
% 第一个参数是图,第二个是边的出点,第三个是边的入点
% 句柄确保能找到对应的东西
% get查询图的属性,h.Nodes(path),‘ID’得到图中最短路径
% set函数设置图形属性
edges = getedgesbynodeid(h,get(h.Nodes(path),'ID'));
set(edges,'LineColor',[1 0 0])
set(edges,'LineWidth',3)

image

标签:set,实现,DG,路径,edges,matlab,path,LineWidth
来源: https://www.cnblogs.com/java-six/p/16182753.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有