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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Alex Mcaulley
Alex Mcaulley am 17 Mai 2019

1 Stimme

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

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by