MATLAB Answers

while loop with three conditions

27 views (last 30 days)
i=2;
while (sqrt(data(i,1)^2+data(i,2)^2+data(i,3)^2) > 0.10 && sqrt(data(i+1,1)^2+data(i+1,2)^2+data(i+1,3)^2) > 0.10 && sqrt(data(i+2,1)^2+data(i+2,2)^2+data(i+2,3)^2) > 0.10)
i=i+1;
end
The above three conditons in while loop working as OR operator. If one of the three conditions meet, the while loop stops. What I need is that while loop should be stopped when the three conditions are met.

  2 Comments

madhan ravi
madhan ravi on 17 May 2019
enclose three conditions with a () separately and see if it works
sermet OGUTCU
sermet OGUTCU on 17 May 2019
Dear @madhan, the result is same.

Sign in to comment.

Accepted Answer

Alex Mcaulley
Alex Mcaulley on 17 May 2019
Changing && by ||:
i=2;
while (sqrt(data(i,1)^2+data(i,2)^2+data(i,3)^2) > 0.10 || sqrt(data(i+1,1)^2+data(i+1,2)^2+data(i+1,3)^2) > 0.10 || sqrt(data(i+2,1)^2+data(i+2,2)^2+data(i+2,3)^2) > 0.10)
i=i+1;
end
You should also add another condition to ensure that i doesn't go up to size(data,1)-2
i=2;
while ((sqrt(data(i,1)^2+data(i,2)^2+data(i,3)^2) > 0.10 || sqrt(data(i+1,1)^2+data(i+1,2)^2+data(i+1,3)^2) > 0.10 || sqrt(data(i+2,1)^2+data(i+2,2)^2+data(i+2,3)^2) > 0.10))&& i <= size(data,1)-2
i=i+1;
end

  0 Comments

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Tags