我遇到了一個我的教授給我的問題。我不需要這個答案,我只需要一些事情就可以了。現在的問題是:瞭解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