列车运行图MATLAB程序讲课教案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

列车运行图M A T L A B

程序

%第一个

%设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

相关文档
最新文档