How to continue loops with few if statement between them

조회 수: 1 (최근 30일)
Iam Zain
Iam Zain 2022년 7월 14일
편집: Jan 2022년 7월 14일
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