Looping if between 2 numbers
조회 수: 77 (최근 30일)
이전 댓글 표시
I am trying to create a for loop that will only loop if x is between two number like 0<=x & x>= 12, but when I use the & symbol it does not work.
댓글 수: 0
답변 (2개)
Jeffrey Clark
2022년 9월 21일
@jason, the and operator (&) produces a logical (true/false 1/0) result - not a range of values. Please look at MATLAB documentation and specifically Find logical AND - MATLAB and & (mathworks.com) and for loop to repeat specified number of times - MATLAB for (mathworks.com)
댓글 수: 1
Jeffrey Clark
2022년 9월 21일
편집: Jeffrey Clark
2022년 9월 21일
@jason, perhaps you are saying loop between values but intend to while loop for your indicated range of x (especially if x is a non integer value) example:
x = someScalar; % not an array
while 0<=x & x<=12 % you really want to continue when less or equal to 12 not x>=12
% do something to change x
if wantToBreakOutEarly
break
end
end
% will reach this point if ~(0<=x & x<=12) | wantToBreakOutEarly
John D'Errico
2022년 9월 21일
편집: John D'Errico
2022년 9월 21일
As @Jeffrey Clark said, the & operator is a LOGICAL operator. Perhaps what you want to do is have a loop over a discontigous domain? For example, you can do this:
S = [-5:0, 12:15];
for s = S
disp(s)
end
Is that what you were looking to do?
No, as I re-read your question, I think it is not.
You asked about a loop that ONLY operates when X is in some interval. And that surely means a while loop. So you can do this:
x = randi(18) - 3;
while (x >= 0) && (x <= 12)
disp(x)
x = randi(18) - 3;
end
disp("final value of x that failed: " + x)
So as long as x remains in the interval of interest, the loop continues. Is that what you want?
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!