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 Center および File ExchangeLoops 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