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 Comments

Why don't you share the code? How can we help you without seeing the code?
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
What is your condition in this cases?
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 ?
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?
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?
Moritz, RobF, the speeds are different, how can I input multiple conditions for speed and use only one for loop ?
"the speeds are different"
Not in the code you posted.

Sign in to comment.

Answers (1)

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

Categories

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

Asked:

DIP
on 31 Jan 2018

Answered:

on 1 Feb 2018

Community Treasure Hunt

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

Start Hunting!