Acc*_*ndi 1 matlab loops infinite while-loop
我认为这将是一个简单的迭代,但显然不是,我一直看到数字在屏幕上运行b = 425.0000... ...这应该结束我的while循环但我已经蓬勃发展!
temp = 85;
b = 85;
cntr = 0;
while b < 425
temp = temp * 0.8
b = b + temp
cntr = cntr + 1
end;
cntr
Run Code Online (Sandbox Code Playgroud)
另外在上面我有,cntr = cntr + 1但在其他语言中,我可以缩短这个cntr++或cntr+=1如何在MATLAB中这样做?
干杯!
您的条件可能应该测试b的当前值是否接近425的值,直到某个有效位数.你可以这样做:
temp = 85;
b = 85;
cntr = 0;
while b < (425 - 0.0001) #<--- however many significant digits you need.
temp = temp * 0.8;
b = b + temp;
cntr = cntr + 1;
end
cntr
Run Code Online (Sandbox Code Playgroud)
问题是你的while循环正在收敛于425,但从未完全达到目标.