athenaeee 发表于 2009-9-8 16:30

求助:dijkstra的matlab程序后一段看不懂...

clear;
clc;
M=10000;%无穷远距离
a(1,:)=;
a(2,:)=;
a(3,:)=;
a(4,:)=;
a(5,:)=;
a(6,:)=zeros(1,6);
a=a+a';%a66邻接矩阵,无向图
pb(1:length(a))=0;pb(1)=1;%存放p,t标号信息
index1=1;%存放标号顶点顺序
index2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号
d(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值
temp=1;%算c1到其它点的最短路
while sum(pb)<length(a)
   tb=find(pb==0);%开始算第tb个顶点的最短路
   d(tb)=min(d(tb),d(temp)+a(temp,tb));
   tmpb=find(d(tb)==min(d(tb)));
   temp=tb(tmpb(1));
   pb(temp)=1;
   index1=;
   index=index1(find(d(index1)==d(temp)-a(temp,index1)));
   if length(index)>=2
      index=index(1);
   end
   index2(temp)=index;
end
d, index1, index2

从没加注释那一行就看不太懂了,求问啊,感激不尽!

athenaeee 发表于 2009-9-8 16:31

1# athenaeee
:) 表示的是  冒号+后括号
页: [1]
查看完整版本: 求助:dijkstra的matlab程序后一段看不懂...