How to continue loops with few if statement between them

1 次查看(过去 30 天)
One thing that I want to do is after first if I want to continue to sum arrival in period between 100 and 200 and so on but I don't know how to do that I want only to sum the values in that period first if is ok but I don't know how to continue:
arrival=xlsread('tripinfo.xlsx','G:G');
depart_time=xlsread('tripinfo.xlsx','B:B');
for i = 1:1:91
if depart_time(i) < 100
mean_travel1 = sum(arrival(1:i,1));
elseif 100 < depart_time(i) & depart_time(i)< 200
mean_travel2 = sum(arrival(i,1));
elseif 200 < depart_time(i) & depart_time(i) < 300
mean_travel3 = sum(arrival(i,1));
elseif 300 < depart_time(i) & depart_time(i) < 400
mean_travel4 = sum(arrival(i,1));
elseif 400 < depart_time(i) & depart_time(i) < 500
mean_travel5 = sum(arrival(i,1));
else
mean_travel6 = sum(arrival(i,1));
end
end

回答(1 个)

Jan
Jan 2022-7-14
编辑:Jan 2022-7-14
This is nicer without a loop:
mean_travel1 = sum(arrival(depart_time < 100,1));
mean_travel2 = sum(arrival(100 < depart_time & depart_time < 200, 1));
... etc.
By the way, why is depart_time == 100 excluded?
If 100 etc. can be included:
G = discretize(depart_time, [-inf, 100, 200, 300, 400, 500, inf]);
S = splitapply(@sum, arrival, G);
Or with a loop:
mean_travel = zeros(1, 6); % Better than hiding an index in the name!
for i = 1:1:91
if depart_time(i) < 100
mean_travel(1) = mean_travel(1) + arrival(i,1);
elseif 100 < depart_time(i) & depart_time(i)< 200
mean_travel(2) = mean_travel(2) + arrival(i,1);
elseif 200 < depart_time(i) & depart_time(i) < 300
mean_travel(3) = mean_travel(3) + arrival(i,1);
elseif 300 < depart_time(i) & depart_time(i) < 400
mean_travel(4) = mean_travel(4) + arrival(i,1);
elseif 400 < depart_time(i) & depart_time(i) < 500
mean_travel(5) = mean_travel(5) + arrival(i,1);
else
mean_travel(6) = mean_travel(6) + arrival(i,1);
end
end

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by