公交线路(6)

2020-02-20 17:55

附录二

function vvdt(start,aim) [fee d C]=data(); for i=1:39

if find(C{i}==start) start=10000+start; end

if find(C{i}==aim) aim=10000+aim; end end

if numel(find(d==start))==0

fprintf('The path cannot be found!'); else

[row col]=find(d==start); for i=1:numel(row) [rows

cols(i,1:numel(find(d(row(i),:)==start)))]=find(d(row(i),:)==start); end

F=creatF(start,row,cols,d); end

if ismember(aim,F(:,2)) num=find(F(:,2)==aim); line=round(F(num,3)-0.5); long=F(num,1)-1; time=3*F(num,1);

value=val(0,F(num,:),fee); updown=ud(F(num,3));

n={start,updown,line,aim,long,time,value}; print(n); else

size_F=size(F); cha=1; Fc={}; n={};

for i=1:size_F(1)

[row1 col1]=find(d==F(i,2)); [rows cols]=find(d==start); row1=setdiff(row1,rows); if numel(row1)>0 for j=1:numel(row1)

col1(j,1:numel(find(d(row1(j),:)==F(i,2))))=find(d(row1(j),:)==F(i,2));

end

F1=creatF(F(i,2),row1,col1,d); Fc=[Fc F1];

if ismember(aim,F1(:,2)) num1=find(F1(:,2)==aim); line1=round(F(i,3)-0.5); mid1=F(i,2); long1=F(i,1)-1;

line2=round(F1(num1,3)-0.5); long2=F1(num1,1)-1;

time=3*(F(i,1)+F1(num1,1))+5; value=val(0,F(i,:),fee);

value=val(value,F1(num1,:),fee); updown1=ud(F(i,3)); updown2=ud(F1(num1,3));

n(cha,:)={start,updown1,line1,mid1,long1,updown2,line2,aim,long2,time,value};

cha=cha+1; end end end if cha==1

fprintf('The path with once chang cannot be found!\\n'); sizec=size(Fc); kind=1;

for j=1:sizec(2) siz=size(Fc{j}); Fj=Fc{j}; for k=1:siz(1)

[row2 col2]=find(d==Fj(k,2)); [rows cols]=find(d==Fj(1,2)); [row col]=find(d==start); row2=setdiff(row2,rows); row2=setdiff(row2,row); if numel(row2)>0 for l=1:numel(row2)

col2(l,1:2)=find(d(row2(l),:)==Fj(k,2)); end

F2=creatF(Fj(k,2),row2,col2,d); if ismember(aim,F2(:,2)) num2=find(F2(:,2)==aim); num1=find(Fj(:,2)==F2(1,2)); num=find(F(:,2)==Fj(1,2));

line1=round(F(num,3)-0.5); line2=round(Fj(num1,3)-0.5); line3=round(F2(num2,3)-0.5); mid1=F(num,2); mid2=Fj(num1,2); long1=F(num,1)-1; long2=Fj(num1,1)-1; long3=F2(num2,1)-1;

time=3*(long1+long2+long3+3)+10; value=val(0,F(num,:),fee); value=val(value,Fj(num1,:),fee); value=val(value,F2(num2,:),fee); updown1=ud(F(num,3)); updown2=ud(Fj(num1,3)); updown3=ud(F2(num2,3));

n(kind,:)={start,updown1,line1,mid1,long1,updown2,line2,mid2,long2,updown3,line3,aim,long3,time,value};

kind=kind+1; end end end end if kind==1

fprintf('The path with twice change cannot be found!\\n');; else

xlswrite('C:\\Users\\Administrator\\Desktop\\all',n,'Sheet2','A1'); minn=n{1,14}; for i=1:kind-1 if n{i,14}

for i=1:kind-1 if n{i,14}==minn print(n(i,:)); end end end else

xlswrite('C:\\Users\\Administrator\\Desktop\\all',n,'Sheet1','A1'); minn=n{1,10};

for i=1:cha-1 if n{i,10}

for i=1:cha-1 if n{i,10}==minn print(n(i,:)); end end end end return

function F=creatF(start,rows,cols,d) F=[0 start 0]; n=numel(rows); for j=1:n

maxcol=numel(nonzeros(d(rows(j),:))); cn=numel(cols(j,:)); if cn>1

for k=1:cn-1

for i=cols(j,k)+1:cols(j,k+1)-1

x=[i-cols(j,k) d(rows(j),i) rows(j)/2+0.5]; F=[F;x]; end end

for i=cols(j,cn)+1:maxcol

x=[i-cols(j,cn) d(rows(j),i) rows(j)/2+0.5]; F=[F;x]; end else

for k=cols(j)+1:maxcol

x=[k-cols(j) d(rows(j),k) rows(j)/2+0.5]; F=[F;x]; end end end

size_F=size(F); f=unique(F(:,2)); size_f=size(f); j=0; re=0;

for i=1:size_F(1) if ismember(F(i,2),f)

f(find(f==F(i,2)))=[]; else

if ~ismember(F(i,2),re) j=j+1; re(j)=F(i,2); end end end others=[]; for k=1:j

[row col]=find(F(:,2)==re(k)); [minre,where]=min(F(row,1)); where=row(where);

other=setdiff(row',where); others=[others other]; end

F(others,:)=[]; return

function value=val(vl,F,fee)

te=importdata('d:\\?òμ???μμ\\×à??\\fee.mat'); if strcmp(fee{round(F(3)-0.5)},'3?a') value=vl+1; else

if strcmp(fee{round(F(3)-0.5)},'μ¥ò??±??1?a?£')|F(1)<=20 value=vl+1; else

if F(1)>20&F(1)<=40 value=vl+2; else

value=vl+3; end end end return

function updown=ud(F) if round(F)==F updown='é?'; else

updown='??'; end return

function print(n) if numel(n)==7


公交线路(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(校园汽车服务)创青春全国大学生创业计划竞赛作品计划书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: