Hey guys I'm running in to a problem with a 'while loop'. A simplified version of my codes look likes this:
B = [361;362;363;1000;10000;100000];
while B > 360
B = B - 360;
end
which yields:
B =
1
2
3
640
9640
99640
What I dont understand is this: why does my while loop not repeat until the last three elements of my matrix are < 360.
Thanks in advance

 Akzeptierte Antwort

Kevin Phung
Kevin Phung am 2 Mai 2019

0 Stimmen

Your while loop actually only runs once because after the first iteration, B>360 returns a logical array of [0 0 0 1 1 1], so it does not loop a second time. I think you meant to do something like this:
B = [361;362;363;1000;10000;100000];
for i = 1:numel(B)
while B(i) > 360
B(i) = B(i) - 360;
end
end
which will return:
1
2
3
280
280
280

Weitere Antworten (0)

Kategorien

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

Produkte

Version

R2019a

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by