How to continue loops with few if statement between them

1 view (last 30 days)
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

Answers (1)

Jan
Jan on 14 Jul 2022
Edited: Jan on 14 Jul 2022
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

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!