MATLAB Floyd演算法求最短路
阿新 • • 發佈:2019-01-28
在該演算法中,我們用鄰接矩陣的形式來儲存該圖。
因為在本次建模過程中,我們已經把資料輸入到excel中,
而matlab是可以程式設計來讀取excel和寫入excel的。若你的圖的
鄰接矩陣在txt中,也可以直接將txt拖入excel中讀取。
n表示維數
w表示該圖鄰接矩陣
clc clear n=32; [w,txt,raw]=xlsread('E:\w.xls'); w(isnan(w))=0 %Floyd演算法求每對頂點之間的最短距離 M=max(max(w))*n^2;%M為充分大的正實數 d=w+((w==0)-eye(n))*M; path=zeros(n); for k=1:n for i=1:n for j=1:n if d(i,j)>d(i,k)+d(k,j) d(i,j)=d(i,k)+d(k,j); path(i,j)=k; end end end end d path xlswrite('E:\Path.xlsx,',path,'sheet1','a1'); xlswrite('E:\FILE.xlsx',d,'sheet1','a1'); ans=1