Using Inequality in a For loop

조회 수: 8 (최근 30일)
Ruben
Ruben 2020년 4월 10일
댓글: Les Beckham 2020년 4월 11일
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('-')

채택된 답변

Les Beckham
Les Beckham 2020년 4월 11일
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
Ruben
Ruben 2020년 4월 11일
This is more or less what I'm looking for, thank you for the assistance!
Les Beckham
Les Beckham 2020년 4월 11일
You are welcome. Glad I could help.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2020년 4월 11일
4*D15_s < D15_f & D15_f < (5*D_rs)*D15_s

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by