matlab 公交网络矩阵程序,求公交的路线的邻接矩阵,怎么读入后生成一个矩阵呀...

clc

clear

[a b]=xlsread('d:/上行下行','sheet1');

[m n]=size(b);

k=fix(m/4);

p=0;

for i=1:k

c1=(b{4*i-1,1});

c2=(b{4*i,1});

m1=length(c1);

n1=length(c2);

if n1==0%原路返回的

j=0;

if c1(1)=='环'

k2=fix((m1-3)/6);

for ii=1:(k2+1)

j=j+1;

f{j}=c1(((ii-1)*6+1+3):((ii-1)*6+5+3));

end

else%原来返回

k2=fix((m1-0)/6);

for ii=1:(k2+1)

j=j+1;

f{j}=c1(((ii-1)*6+1):((ii-1)*6+5));

end

for ii=1:(k2+1)

j=j+1;

f{j}=c1(((k2-ii+1)*6+1):((k2-ii+1)*6+5));

end

end

for jj=1:j

g(p+1:p+j-jj,1)=f(jj);

g(p+1:p+j-jj,2)=f(jj+1:j);

%      h(p+1:p+j-jj,3)=1;

p=p+j-jj;

end

else%环形的

j=0;

k21=fix((m1-3)/6);

for ii=1:(k21+1)

j=j+1;

f{j}=c1(((ii-1)*6+4):((ii-1)*6+8));

end

for jj=1:j

g(p+1:p+j-jj,1)=f(jj);

g(p+1:p+j-jj,2)=f(jj+1:j);

%      h(p+1:p+j-jj,1)=1;

p=p+j-jj;

end

j=0;

k22=fix((n1-3)/6);

for ii=1:(k21+1)

j=j+1;

f{j}=c1((ii-1)*6+4:(ii-1)*6+8);

end

for jj=1:j

g(p+1:p+j-jj,1)=f(jj);

g(p+1:p+j-jj,2)=f(jj+1:j);

%      h(p+1:p+j-jj,1)=1;

p=p+j-jj;

end

end

end

g1=cell2mat(g);

gg=unique(g1,'rows');

% ggg=unique(g);

[mm1 mm2]=size(gg);

gg1=mat2cell(gg,ones(mm1,1),[mm2/2;mm2/2]);

[v1 v2 v3]=unique(gg1);

s=zeros(length(v1));

v4=[v3(1:length(v3)/2) v3(length(v3)/2+1:length(v3))]

[m1 m2]=size(v4);

for i=1:m1

s(v4(i,1),v4(i,2))=1;

end

%

vv{1}=v1'

vv{2}=v1

vv{3}=s

xlswrite('d:/上行下行.xlsx',gg1,'可达站')

xlswrite('d:/上行下行.xlsx',vv{1},'结果','b1')

xlswrite('d:/上行下行.xlsx',vv{2},'结果','a2')

xlswrite('d:/上行下行.xlsx',vv{3},'结果','b2')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值