Go back to initializing values using for loop when condition is not met

조회 수: 1 (최근 30일)
I have a for loop where I initiialize random values to variables and I check for certain condition, if my condition is not met I have to reinitialize the values for the same iteration. How do I do so?
Here's a sample
n = 100;
for i = 1:n
x(i) = rand
y(i) = rand
if(x(i)< 0 || y(i)<0)
disp(' I need to reinitialize values for the same i and my n count should be 100')
end
end
So I have to run the loop until I reach my 'n' value and meet my conditions within the loop. Is there a way to do it or should I use different loop like while?

채택된 답변

infinity
infinity 2019년 7월 10일
편집: infinity 2019년 7월 10일
Hello,
There are several ways, one approach that you can use as follows
clear
n = 100;
x = zeros(1,n);
y = zeros(1,n);
for i = 1:n
xt = rand;
yt = rand;
while (xt*yt<0)
xt = rand;
yt = rand;
end
x(i) = xt;
y(i) = yt;
end
  댓글 수: 6
Mounisha Ganesan
Mounisha Ganesan 2019년 7월 10일
YES ! I did this already. That was my original code. But since x2 is( X2 = x1+ some value ) it might exceed value 1 or become less than 0. So I have to check for the x2 and y2 everytime so that they are between 0-1 and initialize x1 and y1 again for the same iteration until I make sure x2 and y2 are within (0-1)
infinity
infinity 2019년 7월 10일
Hello,
I got your point. You can see my comment above, which is just modified.

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

추가 답변 (0개)

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by