www.gusucode.com > 《LINGO软件及应用》程序和数据 > 《LINGO软件及应用》程序和数据/12第12章/Lanli12_9_6.m

    clc, clear
a=xlsread('Ldata1292.xlsx'); %读入582个顶点之间的最短距离矩阵
pb=xlsread('cumcm2011B附件2_全市六区交通网路和平台设置的数据表.xls',3,'B2:B81')'; %读入平台编号
ind1=[1:582]; %全部路口编号
fpb=setdiff(ind1,pb); %非平台编号
ind2=[pb,fpb]; b=a(ind2,ind2);
c=b([1:80],:); %求80个平台到582个路口的最短距离
cmin=min(c);
bh=ind2(find(cmin>3)); %3分钟无法到达的路口编号
L=length(bh) 
zjb=setdiff(fpb,bh); %可以在3分钟到达的路口编号
ind3=[pb,zjb,bh]; %重新调整编号顺序,便于LINGO软件求解
d=a(pb,ind3); %80个平台与582个路口两两间的最短距离
[dmin,ind4]=min(d);
ind5=ind4(445:end); %138个3分钟无法到达的路口直接指定最近管辖平台的编号
e=a(ind3,ind3); %新编号下582个路口两两之间的最短距离
xlswrite('Ldata1293.xlsx',ind3)
xlswrite('Ldata1293.xlsx',ind5,1,'A3') 
xlswrite('Ldata1293.xlsx',d,1,'A5')
xlswrite('Ldata1293.xlsx',e,1,'A86')