Create a single for loop for multiple conditions

Hi, I have a for loop with several calculations. There are three conditions for which the calculations are more or less the same. How can I formulate the code so that I have just one for loop for multiple conditions ? Ex. A same set of speed calculations for a boat a) Moving in still water b) Moving with the current c) Moving against the current

8 件のコメント

Birdman
Birdman 2018 年 1 月 31 日
Why don't you share the code? How can we help you without seeing the code?
DIP
DIP 2018 年 1 月 31 日
編集済み: DIP 2018 年 1 月 31 日
1. Still River
Boat_Speed=40;
for i=1:41
% Vehicle speed
VMPG(i) = Vehicle_Speed; % mph
Vmps(i) = Vehicle_Speed*0.44704; % m/s
% Rolling resistance force (N)
Fr = Croll*Vwt;
% Frontal area (m2)
Af = 0.84*Vht*Vwd;
% Air density (kg/m3)
rho = Pamb/R/Tamb; ... many more calculations
2. Downstream
Boat_Speed=40;
for i=1:41
% Vehicle speed
VMPG(i) = Vehicle_Speed; % mph
Vmps(i) = Vehicle_Speed*0.44704; % m/s
% Rolling resistance force (N)
Fr = Croll*Vwt;
% Frontal area (m2)
Af = 0.84*Vht*Vwd;
% Air density (kg/m3)
rho = Pamb/R/Tamb; ...
3. Upstream
Boat_Speed=40;
for i=1:41
% Vehicle speed
VMPG(i) = Vehicle_Speed; % mph
Vmps(i) = Vehicle_Speed*0.44704; % m/s
% Rolling resistance force (N)
Fr = Croll*Vwt;
% Frontal area (m2)
Af = 0.84*Vht*Vwd;
% Air density (kg/m3)
rho = Pamb/R/Tamb; ... many more calculations
Birdman
Birdman 2018 年 1 月 31 日
What is your condition in this cases?
DIP
DIP 2018 年 1 月 31 日
there are three cases , the boat speed in still water, moving downstream and moving upstream. The for loop for each case is almost the same. Can I combine the three cases in a single for loop ?
Moritz
Moritz 2018 年 1 月 31 日
I have to say I don't see any difference between the different cases. Can you pin point it to me? Anyhow, why don't you use one for loop and a switch case within for the differences in calculations (alternatively an if else structure as there are only 3 different cases). Does this help?
RobF
RobF 2018 年 1 月 31 日
I also have to say that your conditions (still river - downstream - upstream) don't seem to change anything concerning the for loop. Where the point where the condition gets relevant?
DIP
DIP 2018 年 2 月 1 日
Moritz, RobF, the speeds are different, how can I input multiple conditions for speed and use only one for loop ?
Walter Roberson
Walter Roberson 2018 年 2 月 1 日
"the speeds are different"
Not in the code you posted.

サインインしてコメントする。

回答 (1 件)

A. Sawas
A. Sawas 2018 年 2 月 1 日

0 投票

I suggest you use switch statement like this:
Boat_Speed=40;
% set the following variable based on the current water conditions
water_condition = 'Still River';
for i=1:41
% your code before calculating the speed
% calculate vehicle speed at different water conditions
switch water_condition
case 'Still River'
% your code to calculate speed in still river conditions
case 'Downstream'
% your code to calculate speed in downstream conditions
case 'Upstream'
% your code to calculate speed in upstream conditions
otherwise
warning('Unexpected water condition.');
end
% your code after calculating the speed
end

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

DIP
2018 年 1 月 31 日

回答済み:

2018 年 2 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by