【发布时间】:2013-10-26 17:58:20
【问题描述】:
我在 Matlab 中编写了一个 while 循环,它应该确定参数“n”的值“a”是否超过值 300。我知道“n”应该是 17,但我得到了一个值4 代替。有人看到问题了吗?
代码如下:
a = 10;
k = 0.5;
n = 2;
while a < 300
for m = 1:5
a = a + (a*k) + n;
end
n = n + 1;
end
编辑: 由于 Barmar 的评论,我意识到我没有重新初始化我的“a”变量。虽然代码可能看起来效率不高,但这对我有用:
a = 10;
k = 0.5;
n = 2;
while a < 300
a = 10;
for m = 1:5
a = a + (a*k) + n;
end
if a >= 300
break
end
n = n + 1;
end
【问题讨论】:
-
当您尝试不同的
n值时,您不需要重新初始化a吗? -
也许这个公式并没有像你想象的那样做。你将
a乘以 1.5 并加 2。你这样做了 5 次,然后将n增加到 3。此时,a已经大于 100。我认为n不会一直到 17 岁。 -
谢谢巴马尔。我想出了如何修复我的代码。
标签: matlab for-loop while-loop