我遇到了一个我的教授给我的问题。我不需要这个答案,我只需要一些事情就可以了。现在的问题是:了解while循环在MATLAB中
使用
while
循环寻找最小数N
为其整数的和1
通过N
大于999
这里是我到目前为止,已经工作了几个小时,并找不到任何东西。
sum=0;
while sum>999
sum=1+n
disp('sum is', sum)
disp('n=',n)
end
我遇到了一个我的教授给我的问题。我不需要这个答案,我只需要一些事情就可以了。现在的问题是:了解while循环在MATLAB中
使用
while
循环寻找最小数N
为其整数的和1
通过N
大于999
这里是我到目前为止,已经工作了几个小时,并找不到任何东西。
sum=0;
while sum>999
sum=1+n
disp('sum is', sum)
disp('n=',n)
end
您需要的时候sum_val > 999
退出while循环。如果你看看你的退出条件,并把它读作的话,你可以看到你的问题:
while sum_val > 999
是“循环并执行循环语句,而和的值大于999 更大”。
由于您的总和从0开始,你将永远不会进入你的循环,因为总和小于999你想:
“循环并执行循环语句,而和的值是少比999"
它是:
while sum_val < 999
除此之外,你不定义你的柜台n
。你这样做:
sum_val=1+n
当你算你的总数,你需要确保你实际上总结正确的事情。 sum
是什么,sum
的前一个值加上当前值n
。所以这样做:
sum_val = sum_val + n
还什么是n
?以及在问题陈述中,n
从1到N
(您的最终目标)。所以你需要确保你更新(并设置它)。
n = 1
...
n = n+1
最后,总和是一个函数名,所以你不能使用它。使用其他的东西,如上面所示的sum_val
。
您需要理清这些代码应该放在哪里。
神奇的福克斯先生的回答是正确的。对于将来,我会推荐[调试](https://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html)这个问题。这样你就可以自己解决问题,而且很可能在更短的时间内解决问题。 – ganninu93
我建议你暂停一下,花一些时间阅读Matlab编程。然后,请阅读['while while](https://www.mathworks.com/help/matlab/ref/while.html)上的文档并尝试这些示例。最后,考虑你的循环中'n'和'sum'需要如何改变。你也应该看看你的'while'条件,并理解如果'sum'被设置为'0'之前会发生什么。 – horchler
请勿使用'sum'作为变量名称,因为它是[内置函数](http://mathworks.com/help/matlab/ref/sum.html)。如果你想在你的代码中使用* function *'sum',那么用你的变量掩盖这个问题会让你陷入麻烦。 – Adriaan