clear
clc
%% 输入数据
D=xlsread('附件1 相关的要素名称及位置坐标数据','sheet1','B2:C3');
F=xlsread('附件1 相关的要素名称及位置坐标数据','sheet1','B12:C71');
J=xlsread('附件1 相关的要素名称及位置坐标数据','sheet1','B73:C134');
Z=xlsread('附件1 相关的要素名称及位置坐标数据','sheet1','B5:C10');
coordinate=cell(1,4);
coordinate{1,1}(:,1)=D(:,1);coordinate{1,1}(:,2)=D(:,2);
coordinate{1,3}(:,1)=F(:,1);coordinate{1,3}(:,2)=F(:,2);
coordinate{1,4}(:,1)=J(:,1);coordinate{1,4}(:,2)=J(:,2);
coordinate{1,2}(:,1)=Z(:,1);coordinate{1,2}(:,2)=Z(:,2);
%%
line=cell(70,5);
for ii=1:2
line{ii,1}=ii;
end
for ii=3:8
line{ii,1}=ii-2;
end
for ii=9:70
line{ii,1}=ii-8;
end
%% 存入边信息(line第1列-DZJ顺序编号,第2列-与第1列相连J的编号,第3列-与第1列相连Z的编号,第4列-与第1列相连D的编号,第5列-与第1列相连F的编号)
line{1,2}=[9 10 11];line{1,3}=[3];line{2,2}=[2 3 32 12];
line{3,2}=[48 4 50];line{4,2}=[51 52 54];
line{5,2}=[57 61 52 09];line{5,4}=[1];line{6,2}=[37 38 07];
line{7,2}=[41 44];line{8,2}=[25 26 28 16];line{9,2}=[2];
line{10,2}=[1 3 47];line{10,4}=[2];line{11,2}=[2 48 4 33 32];line{11,4}=[2];
line{12,2}=[3 33 5 50];line{12,3}=[1];line{13,2}=[34 4 6 49];
line{14,2}=[5 36 7 51];line{15,2}=[6 52 8];line{15,3}=[4];
line{16,2}=[52 7 42 9];line{17,2}=[8 10 45];line{17,3}=[3];line{17,4}=[1];
line{18,2}=[9 45 11];line{18,4}=[1];line{19,2}=[10 46];line{19,4}=[1];
line{20,2}=[32 13];line{20,4}=[2];line{21,2}=[21 12 32 14];
line{22,2}=[13 21 35 15];line{23,2}=[14 25 37 16];
line{24,2}=[15 39];line{24,3}=[6];line{25,2}=[16 18];
line{26,2}=[17 29 19 41];line{27,2}=[18 31 20 43];
line{28,2}=[19 31];line{29,2}=[13 14 22];line{29,5}=[1 2 3];
line{30,2}=[21 23];line{30,5}=[4 5 6];line{31,2}=[22 25 24];line{31,5}=[7];
line{32,2}=[23 25 26];line{32,5}=[8 9];
line{33,2}=[24 15];line{33,5}=[5 10 11];line{33,3}=[6];
line{34,2}=[24 27];line{34,5}=[12 13];line{34,3}=[6];
line{35,2}=[26 28];line{35,5}=[14 15 16 17];
line{36,2}=[27 29];line{36,5}=[18 19 21];line{36,3}=[6];
line{37,2}=[28 18 30 31];line{37,5}=[20];line{38,2}=[29 28 31];line{38,5}=[21 22];
line{39,2}=[30 29 20 19];line{39,5}=[23];
line{40,2}=[12 13 3];line{40,5}=[24 25];line{40,4}=[2];
line{41,2}=[3 32 34 4];line{41,5}=[25];line{42,2}=[33 36 5 35];line{42,5}=[26];
line{43,2}=[34 14];line{43,5}=[27 28];line{44,2}=[34 6];line{44,5}=[29 30];
line{45,2}=[15];line{45,5}=[31 32 33];line{46,2}=[42];line{46,5}=[34 35];line{46,3}=[4];
line{47,2}=[16 40];line{47,5}=[36];line{48,2}=[39 42];line{48,5}=[37 38 39];
line{49,2}=[18];line{49,5}=[40];line{49,3}=[5];line{50,2}=[8 38 40 45];
line{51,2}=[19 44];line{52,2}=[43 45 46];line{52,5}=[41 42];line{52,3}=[5];
line{53,2}=[44 46 9 10 42];line{54,2}=[44 45 11];line{54,5}=[43];
line{55,2}=[2 48];line{55,5}=[44 45];line{56,2}=[47 3];line{56,5}=[46 47];line{56,3}=[1];
line{57,2}=[5 50];line{57,5}=[48 49]line{58,2}=[53 49 4];line{58,5}=[50];line{58,3}=[1];
line{59,2}=[6];line{59,3}=[2];line{60,2}=[7 8];line{60,3}=[2 3];
line{61,2}=[56 50 55 59];line{61,5}=[51];line{62,2}=[55 57];line{62,3}=[2];
line{63,2}=[53 54 59 58];line{64,2}=[60 53];line{64,5}=[52 53];
line{65,2}=[54 58];line{65,3}=[3];line{66,2}=[55 59 57 61];
line{67,2}=[53 62 58 55];line{67,5}=[54];line{68,2}=[56 62];line{68,5}=[55 56];
line{69,2}=[58];line{69,5}=[57 58];line{69,3}=[3];line{70,2}=[59 60];line{70,5}=[59 60];
%% 计算邻接矩阵
load coordinate % DZFJ
load line
for ii=1:70
line1{ii,1}=line{ii,1};
line1{ii,4}=line{ii,4};
line1{ii,2}=line{ii,2}+68;
if isequal(line{ii,3},[])~=1
line1{ii,3}=line{ii,3}+2;
end
if isequal(line{ii,5},[])~=1
line1{ii,5}=line{ii,5}+8;
end
end
for ii=3:8
line1{ii,1}=line{ii,1}+2;
end
for ii=9:70
line1{ii,1}=line{ii,1}+68;
end
xx=zeros(130,2);
xx(1:2,:)=coordinate{1,1};
xx(3:8,:)=coordinate{1,2};
xx(9:68,:)=coordinate{1,3};
xx(69:130,:)=coordinate{1,4};
disA=zeros(130,130);
for ii=1:70
for jj=2:5
a=xx(line1{ii,1},:);
if isequal(line1{ii,jj},[])~=1
ind=line1{ii,jj};
for kk=1:length(ind)
b=xx(ind(kk),:);
disA(line1{ii,1},ind(kk))=sqrt((a(1)-b(1))^2+(a(2)-b(2))^2);
end
end
end
end
for ii=1:130
for jj=1:ii
if disA(jj,ii)~=0
disA(ii,jj)=disA(jj,ii);
end
end
end
disA=tril(disA)+tril(disA)';
for ii=1:130
for jj=1:130
if disA(ii,jj)==0
disA(ii,jj)=Inf;
end
end
end
for ii=1:130
disA(ii,ii)=0;
end