Dijkstra算法研究的是从初始点到其他每一节点的最短路径
在求解最短路之前需要将权重矩阵写出,在写的时候需要注意不连通的两个地点要设置成一个无限大的数,在matlab中为inf。
对应的权重矩阵应该为:
最短路函数:
function [min_lable,index] = shortest_path_fun(weight,origin,destination)
n = length(weight);
temp_label= ones(1,n)*inf; % 节点标号列
temp_label(origin)= 0;%起点标号
pre_nodes = zeros(1,n);%节点紧前节点列
chec_nodes = 1:n;%检查列
pre_nodes(origin) = origin;%起点的紧前节点为起点
[min_lable,index]=min(temp_label(chec_nodes));%当前检查点是查列中标号最小的节点
chec_node=chec_nodes(index);
while ~isempty(chec_nodes)
for j=1:n
if temp_label(j)>temp_label(chec_node)&#