最新列车运行图MATLAB程序.docx
《最新列车运行图MATLAB程序.docx》由会员分享,可在线阅读,更多相关《最新列车运行图MATLAB程序.docx(27页珍藏版)》请在冰豆网上搜索。
最新列车运行图MATLAB程序
%第一个
%设6:
42时间为0时刻,转换如下。
a1=[6777777889999910101010101011111212121213131414151515161616161717171718181818192021];
b1=[420102233405215301217222740510152845503343713344351825436404501835573193237212364222476];
c1=7*ones(1,length(a1));
d1=60*(a1-c1)+b1+18;
e1=[7778888899910101010101111111112121212131313141515151616161617171818181818191919202121];
f1=[23415831528375611535810152146513926311424485415244615624472126485923380713184301730173547];
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);
fork=1:
length(x1)-1
fori=1:
d1(end)-d1
(1)+1
ifd1(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);
fori=1:
d1(end)-d1
(1)
ifz1(i)+1==z1(i+1)
k=k+1;
end
ifz1(i)>z1(i+1)
r=floor((k-1)/5)+1;
foru=1:
r
g=i-k+1+5*(u-1);
ifg>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));
fori=1:
length(l1)
plot([l1(i),w1(i)],[y13(i),y14(i)]);
holdon
end
y11=0.1*ones(1,length(d1));
y12=41*ones(1,length(h1));
fori=1:
length(d1)
plot([d1(i),h1(i)],[y11(i),y12(i)]);
holdon
end
%第二个
%设6:
42时间为0时刻,转换如下。
a2=[88810101011131415161920];
b2=[644580245316322358281919];
c2=7*ones(1,length(a2));
d2=60*(a2-c2)+b2+18;
e2=[89910101111131416161920];
f2=[2441618421134504316463737];
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);
fork=1:
length(x2)-1
fori=1:
d2(end)-d2
(1)+1
ifd2(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);
fori=1:
d2(end)-d2
(1)
ifz2(i)+1==z2(i+1)
k=k+1;
end
ifz2(i)>z2(i+1)
r=floor((k-1)/5)+1;
foru=1:
r
g=i-k+1+5*(u-1);
ifg>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));
fori=1:
length(l2)
plot([l2(i),w2(i)],[y23(i),y24(i)]);
holdon
end
y21=41*ones(1,length(d2));
y22=59*ones(1,length(h1));
fori=1:
length(d2)
plot([d2(i),h1(i)],[y21(i),y22(i)]);
holdon
end
%第三个
%设6:
42时间为0时刻,转换如下。
a3=[789910101111121314151616171819191920];
b3=[502661820501336565252512848261010395839];
c3=7*ones(1,length(a3));
d3=60*(a3-c3)+b3+18;
e3=[889910111111131415161617171819202021];
f3=[13493141431336591915162151114933332212];
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);
fork=1:
length(x3)-1
fori=1:
d3(end)-d3
(1)+1
ifd3(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);
fori=1:
d3(end)-d3
(1)
ifz3(i)+1==z3(i+1)
k=k+1;
end
ifz3(i)>z3(i+1)
r=floor((k-1)/5)+1;
foru=1:
r
g=i-k+1+5*(u-1);
ifg>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));
fori=1:
length(l3)
plot([l3(i),w3(i)],[y33(i),y34(i)]);
holdon
end
y31=59*ones(1,length(d3));
y32=82*ones(1,length(h3));
fori=1:
length(d3)
plot([d3(i),h3(i)],[y31(i),y32(i)]);
holdon
end
%第四个
%设6:
42时间为0时刻,转换如下。
a4=[78888899910101111111313131315151616161818192020];
b4=[0021284857915255159163957213242567475245443642939];
c4=7*ones(1,length(a4));
d4=60*(a4-c4)+b4+18;
e4=[788899991011111112121314141415161616171819202021];
f4=[2727495616323742019274415254901024351533592931410377];
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);
fork=1:
length(x4)-1
fori=1:
d4(end)-d4
(1)+1
ifd4(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);
fori=1:
d4(end)-d4
(1)
ifz4(i)+1==z4(i+1)
k=k+1;
end
ifz4(i)>z4(i+1)
r=floor((k-1)/5)+1;
foru=1:
r
g=i-k+1+5*(u-1);
ifg>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));
fori=1:
length(l4)
plot([l4(i),w4(i)],[y43(i),y44(i)]);
holdon
end
y41=82*ones(1,length(d4));
y42=110*ones(1,length(h4));
fori=1:
length(d4)
plot([d4(i),h4(i)],[y41(i),y42(i)]);
holdon
end
%第五个
%设6:
42时间为0时刻,转换如下。
a5=[78899910111214141516161718];
b5=[2929511939442211819343917354533];
c5=7*ones(1,length(a5));
d5=60*(a5-c5)+b5+18;
e5=[789991010111214141516161818];
f5=[45457355501837343550553351149];
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);
fork=1:
length(x5)-1
fori=1:
d5(end)-d5
(1)+1
ifd5(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);
fori=1:
d5(end)-d5
(1)
ifz5(i)+1==z5(i+1)
k=k+1;
end
ifz5(i)>z5(i+1)
r=floor((k-1)/5)+1;
foru=1:
r
g=i-k+1+5*(u-1);
ifg>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));
fori=1:
length(l5)
plot([l5(i),w5(i)],[y53(i),y54(i)]);
holdon
end
y51=110*ones(1,length(d5));
y52=126*ones(1,length(h5));
fori=1:
length(d5)
plot([d5(i),h5(i)],[y51(i),y52(i)]);
holdon
end
%第六个
%设6:
42时间为0时刻,转换如下。
a6=[891010111313141515161617181818191919];
b6=[58162463234753165841533031134304056];
c6=7*ones(1,length(a6));
d6=60*(a6-c6)+b6+18;
e6=[991011111314151516161717181818191920];
f6=[153320320404103315581047202851475713];
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);
fork=1:
length(x6)-1
fori=1:
d6(end)-d6
(1)+1
ifd6(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);
fori=1:
d6(end)-d6
(1)
ifz6(i)+1==z6(i+1)
k=k+1;
end
ifz6(i)>z6(i+1)
r=floor((k-1)/5)+1;
foru=1:
r
g=i-k+1+5*(u-1);
ifg>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));
fori=1:
length(l6)
plot([l6(i),w6(i)],[y63(i),y64(i)]);
holdon
end
y61=126*ones(1,length(d6));
y62=143*ones(1,length(h6));
fori=1:
length(d6)
plot([d6(i),h6(i)],[y61(i),y62(i)]);
holdon
end
%第七个
%设6:
42时间为0时刻,转换如下。
a7=[911121314141517181921];
b7=[17516426211312223640];
c7=7*ones(1,length(a7));
d7=60*(a7-c7)+b7+18;
e7=[911121314141517181921];
f7=[3220315721362727375155];
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);
fork=1:
length(x7)-1
fori=1:
d7(end)-d7
(1)+1
ifd7(k+1)-y71(i)+m7(k+1)>=5&&y71(i)-d7(k)-n7(k)>=5;
z7(i)=y71(i);
end
end
end
%将满足条件的列车再进行剔除,求