dijkstra怎么用matlab实现

希望能直接给出代码,谢谢!ps要是给出注释就在完美不过了,再次感谢邻接矩阵如下,求第4个点到各个点的最短距离[011infinfinfinfinf101infinfinf... 希望能直接给出代码,谢谢!
ps 要是给出注释就在完美不过了,再次感谢

邻接矩阵如下,求第4个点到各个点的最短距离

[0
1
1
inf
inf
inf
inf
inf

1
0
1
inf
inf
inf
inf
inf

1
1
0
1
inf
inf
inf
1

inf
inf
1
0
1
inf
1
inf

inf
inf
inf
1
0
1
inf
inf

inf
inf
inf
inf
1
0
1
inf

inf
inf
inf
1
inf
1
0
1

inf
inf
1
inf
inf
inf
1
0 ]
那个一列就是一行
我也不知道 度娘搞成这样了
展开
 我来答
dukinkin
2014-08-18 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:942万
展开全部
a=[0 1 1 Inf Inf Inf Inf Inf;
1 0 1 Inf Inf Inf Inf Inf;
1 1 0 1 Inf Inf Inf 1;
Inf Inf 1 0 1 Inf 1 Inf;
Inf Inf Inf 1 0 1 Inf Inf;
Inf Inf Inf Inf 1 0 1 Inf;
Inf Inf Inf 1 Inf 1 0 1;
Inf Inf 1 Inf Inf Inf 1 0];
n=length(a); %节点个数
d=inf(1,n); %d存放到每点最短路径的向量
S=4;d(S)=0; %原点是第4点,同时也是目前的出发点
%原点到目前出发点距离是0
T=1:n;
T(T==S)=[]; %除了起始点,其他点都是未扩展的点

while ~isempty(T) %如果没有未扩展的点,那么完成全部点
tempd=a(S,T)+d(S);%计算:从目前出发点到所有未扩展点的距离+目前出发点到原点距离
mask=tempd<d(T); %找到比原来d数组记录更近的距离
d(T(mask))=tempd(mask); %刷新最近距离记录
[ind,ind]=min(d(T)); %从未扩展点中找到现在已知离原点最近的点
S=T(ind); %将已知里原点最近的点作为目前出发点
T(T==S)=[]; %从未扩展点中剔除该点
end
disp(d)

结果
2 2 1 0 1 2 1 2
也就是第四点到图中各点的最短路径
向明兆70
2014-08-18 · TA获得超过100个赞
知道答主
回答量:139
采纳率:0%
帮助的人:167万
展开全部
看到1L我就觉得,没事来百度回答什么问题,看到问题就写个查百度或者查书有意思么。

这三个算法在matlab应该是用一个函数来实现,里面参数不同,例如参数为'Dijkstra'
具体情况我忘了,函数名是graphshortestpath
你查一下啊help graphshortestpath
里面有可以运行的例子的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式