Using Inequality in a For loop

25 views (last 30 days)
Ruben
Ruben on 10 Apr 2020
Commented: Les Beckham on 11 Apr 2020
I am attempting to perform a sensitivity analysis on an inequality of two variables, of the form: 4x < y < 40x. I want to use a for loop to make an array of y values for each incremental change in x, and create a plot to visualize the values of y for each x. My biggest issue has been representing the inequality within the for loop, here is the code that I have so far:
%% Sensitivity Analysis
D_rs = 8; %Ratio of D_85(s) and D_15(s), for any value of each
i=0;
for D15_s = 0:0.1:2
4*D15_s < D15_f < (5*D_rs)*D15_s; % <<<issue with representing this inequality>>>
i=i+1;
D15_sg(i)=D15_s; % storing the varied input D15_s in an array
D15_fg(i)=D15_f; % storing the output variable D15_f in an array
end
plot(D15_sg,D15_fg)
xlabel('-')
ylabel('-')
title('-')

Accepted Answer

Les Beckham
Les Beckham on 11 Apr 2020
Walter has correctly shown how to express mutiple inequality conditions in Matlab (you must include the & (and) operator). However, even replacing that line of code with the correct syntax results in no effect on the rest of your code. The conditional will 'return' a logical value but you are doing nothing with the result.
Are you trying to apply upper and lower limits to D15_f?
If so, perhaps this is what you mean:
D15_f = max(D15_f, 4*D15_s); % apply the lower limit (max returns the larger of the two numbers)
D15_f = min(D15_f, (5*D_rs)*D15_s) % apply the upper limit (min returns the smaller of the two numbers)
If you replace your 'inequality' line by this code, you will be forcing D15_f to stay between these limits.
The rest of your code looks OK as far as I can tell.
  4 Comments
Ruben
Ruben on 11 Apr 2020
This is more or less what I'm looking for, thank you for the assistance!
Les Beckham
Les Beckham on 11 Apr 2020
You are welcome. Glad I could help.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 11 Apr 2020
4*D15_s < D15_f & D15_f < (5*D_rs)*D15_s

Categories

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

Community Treasure Hunt

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

Start Hunting!