Matlab程序求详细解释,说一下程序的运行流程,高分,程序是在matlab论坛找的。。。

function[d,DD]=dijkstra(D,s)%Dijkstra最短路算法Matlab程序用于求从起始点s到其它各点的最短路%D为赋权邻接矩阵%d为s到其它各点... function [d,DD]=dijkstra(D,s)

%Dijkstra最短路算法Matlab程序用于求从起始点s到其它各点的最短路
%D为赋权邻接矩阵
%d为s到其它各点最短路径的长度;
%DD记载了最短路径生成树
[m,n]=size(D);
d=inf.*ones(1,m);
d(1,s)=0;
dd=zeros(1,m);
dd(1,s)=1;
y=s;
DD=zeros(m,m);
DD(y,y)=1;
counter=1;
while length(find(dd==1))<m
for i=1:m
if dd(i)==0
d(i)=min(d(i),d(y)+D(y,i));
end
end
ddd=inf;
for i=1:m
if dd(i)==0&&d(i)<ddd
ddd=d(i);
end
end
yy=find(d==ddd);
counter=counter+1;
DD(y,yy(1,1))=counter;
DD(yy(1,1),y)=counter;
y=yy(1,1);
dd(1,y)=1;
end
展开
 我来答
99马
2013-05-30 · TA获得超过193个赞
知道答主
回答量:199
采纳率:0%
帮助的人:92.2万
展开全部
打开Matlab,点击new M-file(新建个m文件)把你的程序复制粘贴到上面,保存后运行。。。说的很详细了吧,这只是个函数,你要给出函数参数D和s,没给不能运行
更多追问追答
追问
我知道怎么使用这个程序,D就是一个矩阵,S就是一个源点嘛,然后建个引导函数就行了。我看不懂这个函数具体是什么意思,就是他是怎么处理这些数据的,运算的流程和循环是什么。
追答
那你是不知道Dijkstra最短路算法了?数据结构有,图那章
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式