天天看點

matlab中周遊法,8 Matlab 循環操作

如果讓一個人反複做一件相同或相似的事情,他會感到厭煩與疲倦,還容易出錯。計算機天然具備替代人類做重複工作的優勢。Matlab 與其他程式語言一樣,主要采用兩種方式實作循環操作。

for 循環

寫一個求 1 至給定的整數 n 的和的例子來說明 for 循環的用法。

sum = 0;

n = input('Please enter the number n: ');

for i = 1: n

sum = sum + i;

end

sprintf ('You added 1 to %d, and the result is %d', n, sum)

在這段代碼中,先從使用者那裡獲得 n 的值,然後從 1 至 n 逐個取值加到 sum 上。最終得到的 sum 值就是我們要求的值。

for 後面緊跟着一個表達式i = 1:n. 前面說過 : 的用法,顯然

= 右邊的值是一個 1 到 n 的矩陣。

for 語句後面緊跟着一個縮進了的語句,這個語句部分,我們常把它稱為循環體。這裡面循環體隻有一個語句,事實上,循環體可以有多個語句。

整個的 for 循環語句以end結束。

以n = 10為例,這個循環過程就是從矩陣[1,2,3,4,5,6,7,8,9,10]中依次取值賦給變量i, 然後按順序執行循環體中的語句,在這個例子中,就是執行sum = sum + i. 執行到矩陣中的最後一個值,for 循環就結束。

一點程式設計經驗經驗都沒有的同學可能了解這些程式稍有點困難,可以拿張紙,将程式每一步的執行結果都寫出來。

這裡 i 值不必須要用在循環體中,也可以作為計數,用來重複循環體中語句特定次數。比如下面的例子:

for i = 1:10

disp('Hello World!')

end

這個程式的功能是顯示十次Hello World!

for 循環還可以使用 break 結束循環,也可以使用continue 結束目前循環,進入下一次循環。取 n = 10,把剛才那個程式改一下:

sum = 0;

n = 10;

for i = 1: n

if i == 3

continue;

end

if i == 7

break;

end

sum = sum + i;

end

disp (sum);

在這個程式裡,用 if 語句判斷 i 的值是不是 3 ,如果是 3 則跳過循環體中後面的語句,進入下一次循環,也就是取 i 為4,并繼續執行循環體中的語句。

如果 i 的值是 7 ,則退出循環。

請注意,這裡跳出目前循環體中的語句,進入下一次循環,用的是 continue. 而退出整個的循環過程,用的是break. 這也是continue與break的差別。

while 循環

while 循環是說當滿足一個條件就一直執行某些動作。我們把上面的例子用 while 循環改寫一下。

sum = 0;

n = input('Please enter the number n: ');

i = 1;

while i <= n

sum = sum + i;

i = i + 1;

end

sprintf ('You added 1 to %d, and the result is %d', n, sum)

在這段代碼裡面,i 的初始值是 1,隻要 i 的值小于等于 n 的值,就一直執行 sum = sum + i的動作。為了保證 i 值的同步變化,需要在做完sum = sum + i動作後,讓 i 的值也同步增加1。

其他的與 for 循環類似,不再贅述。