收藏 分销(赏)

列车运行图MATLAB程序.doc

上传人:人****来 文档编号:4543608 上传时间:2024-09-27 格式:DOC 页数:19 大小:61.50KB
下载 相关 举报
列车运行图MATLAB程序.doc_第1页
第1页 / 共19页
列车运行图MATLAB程序.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述
%第一个 %设6:42时间为0时刻,转换如下. a1=[6 7 7 7 7 7 7 8 8 9 9 9 9 9 10 10 10 10 10 10 11 11 12 12 12 12 13 13 14 14 15 15 15 16 16 16 16 17 17 17 17 18 18 18 18 19 20 21]; b1=[42 0 10 22 33 40 52 15 30 12 17 22 27 40 5 10 15 28 45 50 33 43 7 13 34 43 5 18 25 43 6 40 45 0 18 35 57 3 19 32 37 2 12 36 42 22 47 6]; c1=7*ones(1,length(a1)); d1=60*(a1—c1)+b1+18; e1=[7 7 7 8 8 8 8 8 9 9 9 10 10 10 10 10 11 11 11 11 12 12 12 12 13 13 13 14 15 15 15 16 16 16 16 17 17 18 18 18 18 18 19 19 19 20 21 21]; f1=[23 41 58 3 15 28 37 56 11 53 58 10 15 21 46 51 3 9 26 31 14 24 48 54 15 24 46 15 6 24 47 21 26 48 59 23 38 0 7 13 18 43 0 17 30 17 35 47]; g=7*ones(1,length(a1)); h1=60*(e1—g)+f1+18; %输入经历时间,求众数,得到一个差值矩阵f。 x1=[41 41 48 41 42 48 45 41 41 41 41 48 48 41 41 41 48 41 41 41 41 41 41 41 41 41 41 57 41 41 41 41 41 48 41 48 41 57 48 41 41 41 48 41 48 55 48 41]’; v1=mode(x1) j1=x1-v1; disp(j1) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵。 n1=(j1+abs(j1))/2; m1=j1; m1(find(j1>0))=0; %选取可行列车 z1=zeros(1,d1(end)-d1(1)+1);%(或zeros(1,d(end)—d(1))) y11=d1(1):1:d1(end); for k=1:length(x1)—1 for i=1:d1(end)—d1(1)+1 if d1(k+1)—y11(i)+m1(k+1)〉=5 && y11(i)—d1(k)-n1(k)〉=5;   z1(i)=y11(i);   end end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l1=zeros(1,length(d1)+50); t1=zeros(1,d1(end)—d1(1)+1); for i=1:d1(end)—d1(1) if z1(i)+1==z1(i+1)   k=k+1; end if z1(i)〉z1(i+1)    r=floor((k—1)/5)+1;   for u=1:r   g=i—k+1+5*(u-1);         if g〉d1(end)-d1(1)+1     g=d1(end)-d1(1)+1;      end      l1(g)=z1(g); end k=1; end end l1(find(l1==0))=[];%找到l中0得位置,并令其为空,即删除 w1=l1+v1; y13=0、1*ones(1,length(l1)); y14=41*ones(1,length(w1)); for i=1:length(l1)   plot([l1(i),w1(i)],[y13(i),y14(i)]); hold on end y11=0、1*ones(1,length(d1)); y12=41*ones(1,length(h1)); for i=1:length(d1) plot([d1(i),h1(i)],[y11(i),y12(i)]); hold on end %第二个 %设6:42时间为0时刻,转换如下。 a2=[8 8 8 10 10 10 11 13 14 15 16 19 20]; b2=[6 44 58 0 24 53 16 32 23 58 28 19 19]; c2=7*ones(1,length(a2)); d2=60*(a2—c2)+b2+18; e2=[8 9 9 10 10 11 11 13 14 16 16 19 20]; f2=[24 4 16 18 42 11 34 50 43 16 46 37 37]; g=7*ones(1,length(a2)); h1=60*(e2-g)+f2+18; %输入经历时间,求众数,得到一个差值矩阵f。 x2=[18 20 18 18 18 18 18 18 20 18 18 18 18 ]'; v2=mode(x2) j2=x2-v2; disp(j2) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵. n2=(j2+abs(j2))/2; m2=j2; m2(find(j2〉0))=0; %选取可行列车 z2=zeros(1,d2(end)-d2(1)+1);%(或zeros(1,d(end)—d(1))) y21=d2(1):1:d2(end); for k=1:length(x2)-1 for i=1:d2(end)-d2(1)+1  if d2(k+1)—y21(i)+m2(k+1)>=5 && y21(i)—d2(k)-n2(k)>=5;     z2(i)=y21(i);    end   end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l2=zeros(1,length(d2)+50); t2=zeros(1,d2(end)—d2(1)+1); for i=1:d2(end)—d2(1)  if z2(i)+1==z2(i+1) k=k+1; end if z2(i)>z2(i+1)   r=floor((k—1)/5)+1; for u=1:r     g=i-k+1+5*(u-1); if g〉d2(end)—d2(1)+1         g=d2(end)—d2(1)+1;   end     l2(g)=z2(g);   end k=1; end end l2(find(l2==0))=[];%找到l中0得位置,并令其为空,即删除 w2=l2+v2; y23=41*ones(1,length(l2)); y24=59*ones(1,length(w2)); for i=1:length(l2)    plot([l2(i),w2(i)],[y23(i),y24(i)]); hold on end y21=41*ones(1,length(d2)); y22=59*ones(1,length(h1)); for i=1:length(d2) plot([d2(i),h1(i)],[y21(i),y22(i)]); hold on end %第三个 %设6:42时间为0时刻,转换如下. a3=[7 8 9 9 10 10 11 11 12 13 14 15 16 16 17 18 19 19 19 20]; b3=[50 26 6 18 20 50 13 36 56 52 52 51 28 48 26 10 10 39 58 39]; c3=7*ones(1,length(a3)); d3=60*(a3—c3)+b3+18; e3=[8 8 9 9 10 11 11 11 13 14 15 16 16 17 17 18 19 20 20 21]; f3=[13 49 31 41 43 13 36 59 19 15 16 21 51 11 49 33 33 2 21 2]; g=7*ones(1,length(a3)); h3=60*(e3—g)+f3+18; %输入经历时间,求众数,得到一个差值矩阵f。 x3=[23 23 25 23 23 22 23 23 23 23 24 30 23 22 23 23 23 23 23 23]’; v3=mode(x3) j3=x3-v3; disp(j3) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵. n3=(j3+abs(j3))/2; m3=j3; m3(find(j3>0))=0; %选取可行列车 z3=zeros(1,d3(end)-d3(1)+1);%(或zeros(1,d(end)—d(1))) y31=d3(1):1:d3(end); for k=1:length(x3)-1 for i=1:d3(end)-d3(1)+1 if d3(k+1)—y31(i)+m3(k+1)〉=5 && y31(i)-d3(k)—n3(k)〉=5;  z3(i)=y31(i); end  end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l3=zeros(1,length(d3)+50); t3=zeros(1,d3(end)—d3(1)+1); for  i=1:d3(end)—d3(1) if z3(i)+1==z3(i+1)   k=k+1; end if z3(i)〉z3(i+1)   r=floor((k—1)/5)+1;  for u=1:r    g=i—k+1+5*(u—1);       if g〉d3(end)-d3(1)+1       g=d3(end)-d3(1)+1;     end     l3(g)=z3(g);  end   k=1; end end l3(find(l3==0))=[];%找到l中0得位置,并令其为空,即删除 w3=l3+v3; y33=59*ones(1,length(l3)); y34=82*ones(1,length(w3)); for i=1:length(l3)    plot([l3(i),w3(i)],[y33(i),y34(i)]); hold on end y31=59*ones(1,length(d3)); y32=82*ones(1,length(h3)); for i=1:length(d3) plot([d3(i),h3(i)],[y31(i),y32(i)]); hold on end %第四个 %设6:42时间为0时刻,转换如下。 a4=[7 8 8 8 8 8 9 9 9 10 10 11 11 11 13 13 13 13 15 15 16 16 16 18 18 19 20 20]; b4=[0 0 21 28 48 57 9 15 25 51 59 16 39 57 21 32 42 56 7 47 5 24 54 4 36 42 9 39]; c4=7*ones(1,length(a4)); d4=60*(a4—c4)+b4+18; e4=[7 8 8 8 9 9 9 9 10 11 11 11 12 12 13 14 14 14 15 16 16 16 17 18 19 20 20 21]; f4=[27 27 49 56 16 32 37 42 0 19 27 44 15 25 49 0 10 24 35 15 33 59 29 31 4 10 37 7]; g=7*ones(1,length(a4)); h4=60*(e4-g)+f4+18; %输入经历时间,求众数,得到一个差值矩阵f. x4=[27 27 28 28 28 35 28 27 35 28 28 28 36 28 28 28 28 28 28 28 28 35 35 27 28 28 28 28]’; v4=mode(x4) j4=x4—v4; disp(j4) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵。 n4=(j4+abs(j4))/2; m4=j4; m4(find(j4>0))=0; %选取可行列车 z4=zeros(1,d4(end)—d4(1)+1);%(或zeros(1,d(end)-d(1))) y41=d4(1):1:d4(end); for k=1:length(x4)-1 for i=1:d4(end)-d4(1)+1 if d4(k+1)-y41(i)+m4(k+1)>=5 && y41(i)-d4(k)-n4(k)>=5;    z4(i)=y41(i);   end     end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l4=zeros(1,length(d4)+50); t4=zeros(1,d4(end)—d4(1)+1); for i=1:d4(end)—d4(1)   if z4(i)+1==z4(i+1) k=k+1; end  if z4(i)〉z4(i+1)  r=floor((k-1)/5)+1; for u=1:r      g=i-k+1+5*(u-1);    if g>d4(end)—d4(1)+1     g=d4(end)-d4(1)+1;   end        l4(g)=z4(g);   end    k=1; end end l4(find(l4==0))=[];%找到l中0得位置,并令其为空,即删除 w4=l4+v4; y43=82*ones(1,length(l4)); y44=110*ones(1,length(w4)); for i=1:length(l4) plot([l4(i),w4(i)],[y43(i),y44(i)]); hold on end y41=82*ones(1,length(d4)); y42=110*ones(1,length(h4)); for i=1:length(d4) plot([d4(i),h4(i)],[y41(i),y42(i)]); hold on end %第五个 %设6:42时间为0时刻,转换如下。 a5=[7 8 8 9 9 9 10 11 12 14 14 15 16 16 17 18]; b5=[29 29 51 19 39 44 2 21 18 19 34 39 17 35 45 33]; c5=7*ones(1,length(a5)); d5=60*(a5—c5)+b5+18; e5=[7 8 9 9 9 10 10 11 12 14 14 15 16 16 18 18]; f5=[45 45 7 35 55 0 18 37 34 35 50 55 33 51 1 49]; g=7*ones(1,length(a5)); h5=60*(e5-g)+f5+18; %输入经历时间,求众数,得到一个差值矩阵f。 x5=[16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16]'; v5=mode(x5) j5=x5—v5; disp(j5) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵。 n5=(j5+abs(j5))/2; m5=j5; m5(find(j5〉0))=0; %选取可行列车 z5=zeros(1,d5(end)-d5(1)+1);%(或zeros(1,d(end)-d(1))) y51=d5(1):1:d5(end); for k=1:length(x5)—1 for i=1:d5(end)—d5(1)+1  if d5(k+1)-y51(i)+m5(k+1)〉=5 && y51(i)—d5(k)—n5(k)〉=5; z5(i)=y51(i);     end   end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l5=zeros(1,length(d5)+50); t5=zeros(1,d5(end)—d5(1)+1); for i=1:d5(end)-d5(1) if z5(i)+1==z5(i+1)     k=k+1; end if z5(i)>z5(i+1)   r=floor((k—1)/5)+1;    for u=1:r     g=i—k+1+5*(u—1);     if g>d5(end)—d5(1)+1    g=d5(end)-d5(1)+1;     end   l5(g)=z5(g); end  k=1; end end l5(find(l5==0))=[];%找到l中0得位置,并令其为空,即删除 w5=l5+v5; y53=110*ones(1,length(l5)); y54=126*ones(1,length(w5)); for i=1:length(l5)   plot([l5(i),w5(i)],[y53(i),y54(i)]); hold on end y51=110*ones(1,length(d5)); y52=126*ones(1,length(h5)); for i=1:length(d5) plot([d5(i),h5(i)],[y51(i),y52(i)]); hold on end %第六个 %设6:42时间为0时刻,转换如下。 a6=[8 9 10 10 11 13 13 14 15 15 16 16 17 18 18 18 19 19 19]; b6=[58 16 2 46 3 23 47 53 16 58 41 53 30 3 11 34 30 40 56]; c6=7*ones(1,length(a6)); d6=60*(a6—c6)+b6+18; e6=[9 9 10 11 11 13 14 15 15 16 16 17 17 18 18 18 19 19 20]; f6=[15 33 20 3 20 40 4 10 33 15 58 10 47 20 28 51 47 57 13]; g=7*ones(1,length(a6)); h6=60*(e6-g)+f6+18; %输入经历时间,求众数,得到一个差值矩阵f。 x6=[17 17 18 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17]'; v6=mode(x6) j6=x6-v6; disp(j6) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵. n6=(j6+abs(j6))/2; m6=j6; m6(find(j6>0))=0; %选取可行列车 z6=zeros(1,d6(end)-d6(1)+1);%(或zeros(1,d(end)—d(1))) y61=d6(1):1:d6(end); for k=1:length(x6)—1 for i=1:d6(end)-d6(1)+1 if d6(k+1)—y61(i)+m6(k+1)〉=5 && y61(i)—d6(k)-n6(k)>=5;    z6(i)=y61(i);   end     end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l6=zeros(1,length(d6)+50); t6=zeros(1,d6(end)—d6(1)+1); for  i=1:d6(end)—d6(1) if z6(i)+1==z6(i+1) k=k+1; end  if z6(i)>z6(i+1)   r=floor((k-1)/5)+1;   for u=1:r    g=i—k+1+5*(u-1);    if g〉d6(end)—d6(1)+1   g=d6(end)—d6(1)+1;    end      l6(g)=z6(g);     end   k=1; end end l6(find(l6==0))=[];%找到l中0得位置,并令其为空,即删除 w6=l6+v6; y63=126*ones(1,length(l6)); y64=143*ones(1,length(w6)); for i=1:length(l6)    plot([l6(i),w6(i)],[y63(i),y64(i)]); hold on end y61=126*ones(1,length(d6)); y62=143*ones(1,length(h6)); for i=1:length(d6) plot([d6(i),h6(i)],[y61(i),y62(i)]); hold on end %第七个 %设6:42时间为0时刻,转换如下. a7=[9 11 12 13 14 14 15 17 18 19 21]; b7=[17 5 16 42 6 21 13 12 22 36 40]; c7=7*ones(1,length(a7)); d7=60*(a7-c7)+b7+18; e7=[9 11 12 13 14 14 15 17 18 19 21]; f7=[32 20 31 57 21 36 27 27 37 51 55]; g=7*ones(1,length(a7)); h7=60*(e7-g)+f7+18; %输入经历时间,求众数,得到一个差值矩阵f。 x7=[15 15 15 15 15 15 15 15 15 15 15]'; v7=mode(x7) j7=x7—v7; disp(j7) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵。 n7=(j7+abs(j7))/2; m7=j7; m7(find(j7>0))=0; %选取可行列车 z7=zeros(1,d7(end)-d7(1)+1);%(或zeros(1,d(end)—d(1))) y71=d7(1):1:d7(end); for k=1:length(x7)—1 for i=1:d7(end)-d7(1)+1  if d7(k+1)—y71(i)+m7(k+1)>=5 && y71(i)-d7(k)—n7(k)>=5;   z7(i)=y71(i);   end   end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l7=zeros(1,length(d7)+50); t7=zeros(1,d7(end)-d7(1)+1); for  i=1:d7(end)-d7(1)   if z7(i)+1==z7(i+1)   k=k+1; end  if z7(i)>z7(i+1)  r=floor((k—1)/5)+1;   for u=1:r   g=i—k+1+5*(u-1);   if g〉d7(end)-d7(1)+1 g=d7(end)-d7(1)+1;   end l7(g)=z7(g); end   k=1; end end l7(find(l7==0))=[];%找到l中0得位置,并令其为空,即删除 w7=l7+v7; y73=143*ones(1,length(l7)); y74=158*ones(1,length(w7)); for i=1:length(l7)   plot([l7(i),w7(i)],[y73(i),y74(i)]); hold on end y71=143*ones(1,length(d7)); y72=158*ones(1,length(h7)); for i=1:length(d7) plot([d7(i),h7(i)],[y71(i),y72(i)]); hold on end %第八个 %设6:42时间为0时刻,转换如下. a8=[9 10 11 12 14 14 18 19 19 20 21]; b8=[16 49 6 17 23 38 50 40 53 52 21]; c8=7*ones(1,length(a8)); d8=60*(a8—c8)+b8+18; e8=[9 11 11 12 14 14 19 19 20 21 21]; f8=[32 5 22 33 39 54 6 56 9 8 37]; g=7*ones(1,length(a8)); h8=60*(e8—g)+f8+18; %输入经历时间,求众数,得到一个差值矩阵f. x8=[16 16 16 16 16 16 16 16 16 16 16]’; v8=mode(x8) j8=x8—v8; disp(j8) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵。 n8=(j8+abs(j8))/2; m8=j8; m8(find(j8〉0))=0; %选取可行列车 z8=zeros(1,d8(end)-d8(1)+1);%(或zeros(1,d(end)-d(1))) y81=d8(1):1:d8(end); for k=1:length(x8)—1 for i=1:d8(end)—d8(1)+1 if d8(k+1)—y81(i)+m8(k+1)>=5 && y81(i)—d8(k)—n8(k)〉=5;   z8(i)=y81(i);     end    end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l8=zeros(1,length(d8)+50); t8=zeros(1,d8(end)-d8(1)+1); for i=1:d8(end)-d8(1)   if z8(i)+1==z8(i+1)     k=k+1; end if z8(i)>z8(i+1)   r=floor((k—1)/5)+1;    for u=1:r       g=i—k+1+5*(u-1);      if g〉d8(end)-d8(1)+1       g=d8(end)—d8(1)+1;     end    l8(g)=z8(g);  end    k=1; end end l8(find(l8==0))=[];%找到l中0得位置,并令其为空,即删除 w8=l8+v8; y83=158*ones(1,length(l8)); y84=174*ones(1,length(w8)); for i=1:length(l8)   plot([l8(i),w8(i)],[y83(i),y84(i)]); hold on end y81=158*ones(1,length(d8)); y82=174*ones(1,length(h8)); for i=1:length(d8) plot([d8(i),h8(i)],[y81(i),y82(i)]); hold on end %第九个 %设6:42时间为0时刻,转换如下. a9=[9 10 11 11 11 12 12 14 15 16 17 17 18 18 19 19 19 19 20 20 20 20 21 21 21 22]; b9=[34 49 17 24 52 30 35 41 27 48 28 59 17 58 3 8 21 58 11 17 27 43 10 21 39 19]; c9=7*ones(1,length(a9)); d9=60*(a9-c9)+b9+18; e9=[9 11 11 12 12 12 12 15 15 17 17 18 18 19 19 19 19 20 20 20 20 21 21 21 22 23]; f9=[55 11 38 7 15 51 56 2 48 9 49 20 38 19 24 29 43 19 32 38 48 5 31 42 0 1]; g=7*ones(1,length(a9)); h9=60*(e9-g)+f9+18; %输入经历时间,求众数,得到一个差值矩阵f。 x9=[21 22 21 43 23 21 21 21 21 21 21 21 21 21 21 21 22 21 21 21 21 22 21 21 21 42]’; v9=mode(x9) j9=x9—v9; disp(j9) %矩阵剔除,将f中大于0得用0代替得以矩阵m,将f小于0得数代替得一矩阵n,n,m都就是1*20得矩阵。 n9=(j9+abs(j9))/2; m9=j9; m9(find(j9〉0))=0; %选取可行列车 z9=zeros(1,d9(end)-d9(1)+1);%(或zeros(1,d(end)-d(1))) y91=d9(1):1:d9(end); for k=1:length(x9)-1 for i=1:d9(end)—d9(1)+1 if d9(k+1)—y91(i)+m9(k+1)〉=5 && y91(i)—d9(k)-n9(k)>=5;  z9(i)=y91(i);      end     end end %将满足条件得列车再进行剔除,求数量最大且满足条件得列车 r=0; g=0; k=1; p=1; l9=zeros(1,length(d9)+50); t9=zeros(1,d9(end)-d9(1)+1); for i=1:d9(end)—d9(1)   if z9(i)+1==z9(i+1)   k=k+1; end  if z9(i)〉z9(i+1) r=floor((k—1)/5)+1;  for u=1:r    g=i-k+1+5*(u-1);      if g〉d9(end)-d9(1)+1      g=d9(end)—d9(1)+1;     end    l9(g)=z9(g);   end k=1; end end l9(find(l9==0))=[];%找到l中0得位置,并令其为空,即删除 w9=l9+v9; y93=174*ones(1,length(l9)); y94=195*ones(1,length(w9)); for i=1:length(l9)    plot([l9(i),w9(i)],[y93(i),y94(i)]); hold on end y91=174*ones(1,length(d9)); y92=195*ones(1,length(h9)); for i=1:length(d9) plot([d9(i),h9(i)],[y91(i),y92(i)]); hold on end gtext(’北京西’); gtext(’保定东’); gtext('定州东’); gtext('石家庄北'); gtext('邢台东’); gtext('邯郸东’); gtext('安阳东’); gtext(’鹤壁东'); gtext(’新乡东'); gtext('郑州东');
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服