怎么用matlab求几个点连起来的最短路径

希望给出能运行的代码,点的起始和终止位置不定,所有点与点之间的距离完全知道... 希望给出能运行的代码,点的起始和终止位置不定,所有点与点之间的距离完全知道 展开
 我来答
匿名用户
2016-05-01
展开全部
你做一个M函数用吧。
function [d,path]=dijkstra(W,s,t)
[n,m]=size(W);ix=(W==0);W(ix)=inf;
if n~=m,error('Square W required');end
visited(1:n)=0; dist(1:n)=inf;parent(1:n)=0;dist(s)=0;d=inf;
for i=1:(n-1),%求出每个节点与起始点的关系
ix=(visited==0);vec(1:n)=inf;vec(ix)=dist(ix);
[a,u]=min(vec);visited(u)=1;
for v=1:n,if (W(u,v)+dist(u)<dist(v)),
dist(v)=dist(u)+W(u,v);parent(v)=u;
end;end;end
if parent(t)~=0,path=t;d=dist(t);%回溯最短路径
while t~=s,p=parent(t);path=[p path];t=p;end;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式