matlab中的while循环逻辑变量的值是真,循环会无限吗?

余真1774 1年前 已收到1个回答 举报

sunnybank 春芽

共回答了13个问题采纳率:84.6% 举报


tic
while 1
toc
end
你就知道了.
按CTRL+C可以退出循环

1年前 追问

5

余真1774 举报

为什么还能给出结果呢?例如: n=1;oldsum=-1;newsum=0; while newsum>oldsum oldsum=newsum;newsum=newsum+n^(-4);n=n+1; end newsum

举报 sunnybank

tic是设置时间的起点 toc是计算出到tic的运行时间,所以每一次循环,显示一个运行的时间. n=1; oldsum=-1; newsum=0; while newsum>oldsum oldsum=newsum; newsum=newsum+n^(-4); n=n+1 %这里去掉分号,也会显示出n end newsum

余真1774 举报

不加分号确实会显示n的值,但是我想问最后执行结果给出的newsum=1.0823,是如何给出的呢?不是无限循环吗,为什么给出确定的n=9743呢?

举报 sunnybank

这个不是无限循环啊. 主要是 n^-4到了一定程度,接近于零。由于浮点数精度有限,只要n^-4到这个精度, oldsum和newsum就相等了。 就退出循环了。 如果 n=1; oldsum=-1; newsum=0; while newsum>=oldsum %如果有等号的话,应当是无限循环 oldsum=newsum; newsum=newsum+n^(-4); n=n+1 %这里去掉分号,也会显示出n end newsum
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.018 s. - webmaster@yulucn.com