%(4)对任意两个车站m,n,若没有线路直接通过这两车站,
%编写通过一次转车而到达两站的M文件
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function pass_1(pass_station_way)
disp('1为单行车道,2为上行车道,3为下行车道,4为环形车道')
load shen_1
sub_load = shen_1;
n = size(sub_load,2);%%%%%%%%%%%%n = size(sub_load,2);
sub_load_1 = sub_load(:,3:n);
%pass_station_way = [];
%pass_station_way = input('please input the bus_station_way_start and end:')
%pass_station_start = pass_station_way(1);
%pass_station_end = pass_station_way(2);
ii1 = [];ii2 = [];
jj1 = [];jj2 = [];
[ii1,jj1] = ind2sub(size(sub_load_1),...
find(sub_load_1 == pass_station_way(1))); %有起始站的各路车的信息
[ii2,jj2] = ind2sub(size(sub_load_1),...
find(sub_load_1 == pass_station_way(2)));%有末站的各路车的信息
m = length(ii1);mm = length(ii2);
sub_common_1 = cell(1,m);
sub_common_2 = cell(1,m);
sub_common_3 = cell(1,mm);
sub_common_4 = cell(1,mm);
for i_1 = 1:m
% sub_common_1{i_1} = sub_load(ii1(i_1),jj1(i_1):n);
if sub_load(ii1(i_1),2) == 4
sub_common_2{i_1} = sub_load(ii1(i_1),3:n); %%|.............起点站...............|%环形车道. (2)
sub_common_2{i_1} = sub_common_2{i_1}(sub_common_2{i_1}~=0);
else
sub_common_1{i_1} = sub_load(ii1(i_1),jj1(i_1):n); % %.........|起点站..........|. %%单行车道....... (1)
sub_common_1{i_1} = sub_common_1{i_1}(sub_common_1{i_1}~=0);
end
end
for j_1 = 1:mm
% sub_common_3{j_1} = sub_load(ii2(j_1),3:jj2(j_1));
if sub_load(ii2(j_1),2) == 4
sub_common_4{j_1} = sub_load(ii2(j_1),3:n); %%|.............起点站...........|....%环形车道 (4)
sub_common_4{j_1} = sub_common_4{j_1}(sub_common_4{j_1}~=0);
else
sub_common_3{j_1} = sub_load(ii2(j_1),3:jj2(j_1)); %%|.........终点站|.......... %%单行车道.....(3)
sub_common_3{j_1} = sub_common_3{j_1}(sub_common_3{j_1}~=0);
end
end
c_1 = [];c_2 = [];c_3 = [];c_4 = [];
for i_3 = 1:m
for j_3 = 1:mm
c_1 = intersect( sub_common_1{i_3},sub_common_3{j_3}); %(1) (3)
c_2 = intersect( sub_common_2{i_3},sub_common_3{j_3}); %(2) (3)
c_3 = intersect( sub_common_2{i_3},sub_common_4{j_3}); %(3) (4)
c_4 = intersect( sub_common_1{i_3},sub_common_4{j_3}); %(1) (4)
if ~isempty(c_1)
for i_4 = 1:length(c_1)
fprintf('乘坐%d路车%d车道从%d站到%d站,\n再换乘%d路车%d车道到%d站,\n\n',...
sub_load(ii1(i_3),1),sub_load(ii1(i_3),2),pass_station_way(1),...
c_1(i_4),sub_load(ii2(j_3),1),sub_load(ii2(j_3),2),pass_station_way(2));
end
elseif ~isempty(c_2)
for i_4 = 1:length(c_2)
fprintf('乘坐%d路车%d车道从%d站到%d站,\n再换乘%d路车%d车道到%d站,\n\n',...
sub_load(ii1(i_3),1),sub_load(ii1(i_3),2),pass_station_way(1),...
c_2(i_4),sub_load(ii2(j_3),1),sub_load(ii2(j_3),2),pass_station_way(2));
end
elseif ~isempty(c_3)
for i_4 = 1:length(c_3)
fprintf('乘坐%d路车%d车道从%d站到%d站,\n再换乘%d路车%d车道到%d站,\n\n',...
sub_load(ii1(i_3),1),sub_load(ii1(i_3),2),pass_station_way(1),...
c_3(i_4),sub_load(ii2(j_3),1),sub_load(ii2(j_3),2),pass_station_way(2));
end
elseif ~isempty(c_4)
for i_4 = 1:length(c_4)
fprintf('乘坐%d路车%d车道从%d站到%d站,\n再换乘%d路车%d车道到%d站,\n\n',...
sub_load(ii1(i_3),1),sub_load(ii1(i_3),2),pass_station_way(1),...
c_4(i_4),sub_load(ii2(j_3),1),sub_load(ii2(j_3),2),pass_station_way(2));
end
end
end
end
%fprintf('乘坐%d路车%d车道从%d站到%d站,\n换乘%d路车%车道到%d站,\n\n',sub_load(ii1(i_3),1),sub_load(ii1(i_3),2),2),pass_station_way(1),c_1,sub_load(ii2(j_3),1),sub_load(ii2(j_3),2),pass_station_way(2));
%1027 1430