用while循环替换for循环

时间:2015-11-17 16:03:27

标签: matlab loops for-loop while-loop

我编写了一个估算e倒数的函数,并循环遍历n的值,直到近似值在实际值的给定tolerance范围内。

目前我使用此代码:

function [approx, n] = calc_e(tolerance)

for n = 1:inf
    approx = ((1-1/n)^n);
    diff = (1/exp(1)) - approx;
    if diff < tolerance, break; end
end
end

这样可以正常工作但是我被告知使用while循环可以提高效率,但我无法理解如何以这种方式进行操作。

有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:4)

简单地说:

function [approx, n] = calc_e(tolerance)
n = 1;
while (1/exp(1)) - ((1-1/n)^n) >= tolerance
   n = n + 1;
end
end