# Looping if between 2 numbers

조회 수: 85 (최근 30일)
jason 2022년 9월 21일
편집: Jeffrey Clark 2022년 9월 21일
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.

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

### 답변 (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이전 댓글 -1개 표시이전 댓글 -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
-5 -4 -3 -2 -1 0 12 13 14 15
Is that what you were looking to do?
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
1 6 4 12 8 3 8 10 0 12 9 11 7 8 7 10
disp("final value of x that failed: " + x)
final value of x that failed: 15
So as long as x remains in the interval of interest, the loop continues. Is that what you want?

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

### 카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

R2022a

### Community Treasure Hunt

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

Start Hunting!

Translated by