最短路算法,matlab程序
2007-05-03 19:00
246 查看
%我自己写的一个最短路算法,matlab程序
(过去写的,在我的百度空间上面也有)
clear;
clc;
M=1000;
a(1,:)=[0,50,M,40,25,10];
a(2,:)=[zeros(1,2),15,20,M,25];
a(3,:)=[zeros(1,3),10,20,M];
a(4,:)=[zeros(1,4),10,25];
a(5,:)=[zeros(1,5),55];
a(6,:)=zeros(1,6);
a=a+a';
%----------以上为矩阵数据--------------
d=a(1,:)
a(:,1)=a(:,1)+M;
t=1;
Row=1;
while t<=length(a)
temp=find(a(Row,:)==min(a(Row,:)));
for i=1:length(temp);
a(:,temp(1))=a(:,temp(1))+M;
if min(a(Row,:))+d(Row)<d(temp(i))
d(temp(i))=min(a(Row,:))+d(Row)
end
end
a
Row
t=t+1;
Row=temp(1);
for i=2:length(temp);
a(:,temp(i))=a(:,temp(i))-M;
end
end
d
(过去写的,在我的百度空间上面也有)
clear;
clc;
M=1000;
a(1,:)=[0,50,M,40,25,10];
a(2,:)=[zeros(1,2),15,20,M,25];
a(3,:)=[zeros(1,3),10,20,M];
a(4,:)=[zeros(1,4),10,25];
a(5,:)=[zeros(1,5),55];
a(6,:)=zeros(1,6);
a=a+a';
%----------以上为矩阵数据--------------
d=a(1,:)
a(:,1)=a(:,1)+M;
t=1;
Row=1;
while t<=length(a)
temp=find(a(Row,:)==min(a(Row,:)));
for i=1:length(temp);
a(:,temp(1))=a(:,temp(1))+M;
if min(a(Row,:))+d(Row)<d(temp(i))
d(temp(i))=min(a(Row,:))+d(Row)
end
end
a
Row
t=t+1;
Row=temp(1);
for i=2:length(temp);
a(:,temp(i))=a(:,temp(i))-M;
end
end
d
相关文章推荐
- matlab练习程序(圆柱投影)
- 数字图像处理MATLAB程序实现
- matlab使语句对齐和使正在运行的程序暂停
- 有趣的MATLAB小程序
- matlab自动运行完程序发送邮件知会我
- 一个单尺度小波分解的程序-MATLAB版
- TLD算法matlab版本的程序调试
- matlab练习程序(图像放大/缩小,最邻近插值)
- matlab练习程序(图像旋转,最邻近插值)
- Numerical Computing with MaTLAB 中的工具箱 ncm 以及习题答案和程序下载
- MATLAB中读取同一路径下所有txt或mat文件的程序
- 在Matlab中调用C/C++程序<三>
- 将C/C++程序的变量数据导入到MATLAB中的方法!
- 图像切割matlab程序
- [转]Matlab中计算程序运行时间的三种常用方法
- Windows下使用MATLAB的MCC命令生成C/C++程序
- 最优化——FR共轭梯度法matlab程序
- 关于UltraEdit 15.* 的语法高亮-支持Matlab程序.m文件
- LevalSet水平集分割算法 matlab程序源码
- Matlab的Notebook软件工具设置及程序运行