用matlab求最短路线

用matlab图论工具箱graphshortestpath函数求最优路线怎么求,需要什么数据,怎么输入,求大神详细解释啊🙏... 用matlab 图论工具箱graphshortestpath函数求最优路线怎么求,需要什么数据,怎么输入,求大神详细解释啊🙏 展开
 我来答
lhmhz
高粉答主

2019-01-22 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17019

向TA提问 私信TA
展开全部

给你一个具体的例子来说明如何使用graphshortestpath函数求最优路线:

W = [.41 .99 .51 .32 .15 .45 .38 .32 .36 .29 .21]; %距离
DG = sparse([6 1 2 2 3 4 4 5 5 6 1],[2 6 3 5 4 1 6 3 4 3 5],W);%节点

h = view(biograph(DG,[],'ShowWeights','on'));%绘制路线图

[dist,path] = graphshortestpath(DG,1,6) % dist——最短距离;path——最短路线;

运行结果

更多追问追答
追问
那个节点是怎么来的
追答

节点是已知的。

6→2,S=0.41;1→6,S=0.99;2→3,S=0.51;。。。。。。

--
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有... 点击进入详情页
本回答由--提供
kuxingseng1999
2019-01-23 · TA获得超过698个赞
知道小有建树答主
回答量:334
采纳率:86%
帮助的人:177万
展开全部

N = 20;         % 随机生成点的数量

x = rand(N,1);  % 生成点的坐标

y = rand(N,1);

L = rand(N,N) > 0.9; % 随机生成连接关系(随机数大于门限值0.9为有连接)

D = round(squareform(pdist([x y]))*100)/100; % 计算各节点距离(保留两位小数)

DG = sparse(D.*L);   % 用稀疏矩阵表示图

UG = tril(DG + DG'); % 转换为无向图

view(biograph(UG,[],'ShowArrows','off','ShowWeights','on'));% 显示图

% 计算任意(随机选择)两个节点间的最小路径

i = ceil(rand*N);

j = ceil(rand*N);

[dist,path,pred] = graphshortestpath(UG,i,j,'directed',false);

% 凸显出最短路径

h = view(biograph(UG,[],'ShowArrows','off','ShowWeights','on'));

set(h.Nodes(path),'Color',[1 0.4 0.4])

fowEdges = getedgesbynodeid(h,get(h.Nodes(path),'ID'));

revEdges = getedgesbynodeid(h,get(h.Nodes(fliplr(path)),'ID'));

edges = [fowEdges;revEdges];

set(edges,'LineColor',[1 0 0])

set(edges,'LineWidth',2)

运行结果如下图所示,因为数据是随机生成的,所以每次运算结果会有差异。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式