4.8.1 For 迴圈


for 迴圈是用在須重複執行且執行次數有一定的算式,它的結構如下:

for index = array

command A

end

如果我們要計算一纜車離鐵塔的速度 (v),它的速度計算方式與且鐵塔的距離 (d)有關,假設以 10 公尺為判斷值,則速度計算分為二個算式:

假設有一個陣列 d 為纜車到鐵塔的距離,則以下的for 迴圈可計算速對應的速度

>> for k = 1:length(d)

if d(k) <= 10

velocity = 0.425 + 0.00175*d(k)^2;

else

velocity = 0.625 + 0.12*d - 0.00025*d(k)^2;

end

fprintf('d= %f velocity= %f\n',d(k),velocity)

end

另外幾個例子

>> for n=1:10

x(n)=sin(n*pi/10);

end

>> disp(x)

>> for n=1:5

for m=5:-1:1

A(n,m)=n^2+m^2;

end

disp(n)

end

>> disp(A)

但是如果可以用陣列或是矩陣運算來取代以for 迴圈計算,就應採用前者因為計算速度快多了。上述的例子 可改為

>> n=1:10;

>> x=sin(n*pi/10);

使用 for 迴圈的規則如下:

  1. 上述的 for 迴圈中的指標 (index) 須為是一變數。
  2. 如果 array 代表陣列是空無一物,則迴圈不會被執行,例如 k=1:0
  3. 如果 array 代表陣列是一純量,則迴圈會被執行一次,例如 k=1:1
  4. 如果 array 代表陣列是一向量,則迴圈會被依序的執行,例如 k=1:b, b=[1 3 5]
  5. 如果 array 代表陣列是一矩陣,則迴圈會被逐行依序的執行,例如 k=1:B, B=[1 2; 3 4]
  6. for 完整的語法為: for k = first:increment:last,其中的 first, increment, last分別為初始值,增量,終止值。而迴圈被執行的次數由以下的算式決定:

floor((last-first)/increment)+1

如果計算得到的值為負,則迴圈不被執行。



上一頁 下一頁 講義大綱