MATLAB 提供重複迴圈(Loops)及條件判斷(Conditions)等程式流程控制(Flow Control)的指令,最簡單的程式重複執行指令是 for 迴圈(For-loop),其基本使用語法為:
For 變數 = 向量 運算式; end 其中變數的值會被依次設定為向量的每一個元素值,來重複執行介於 for 和 end 之間的運算式。因此,若無意外情況,運算式執行的次數會等於向量的長度。舉例來說,下列指令會產生一個長度為 6 的調和數列(Harmonic Sequence):
>> x = zeros(1,6); % 預先配置矩陣 x 為一個維度 1×6 的零矩陣 >> for i = 1:6 >> x(i) = 1/i; >> end >> disp(x) % 顯示矩陣 x 的內容 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 在上例中,矩陣 x 最初是一個 1×6 大小的零矩陣,在 for 迴圈中,變數 i 的值依次是 1 到 6(即矩陣 1:6 或 [1 2 3 4 5 6 ] 中的每一個元素),因此矩陣 x 的第 i 個元素的值依次被設為 1/i 。
另一個常用到的程式重複執行指令是 while 迴圈(While-loop),其基本使用語法為:
while 條件式 運算式; end 也就是說,只要條件式成立,運算式就會一再被重複執行。例如先前用 for 迴圈產生的調和數列的作法,我們可用 while 迴圈改寫如下:
>> x = zeros(1,6); % x 是一個 1×6 的零矩陣 >> i = 1; >> while i <= 6 >> x(i) = 1/i; >> i = i + 1; >> end >> disp(x) % 顯示矩陣 x 的內容 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667
MATLAB 也提供依條件判斷來控制程式流程的指令,最常見為 if – else – end 的指令組合,其基本使用形式為:
if 條件式 運算式; else 運算式; end 範例如下:
>> if rand(1,1) > 0.5 >> disp('Given random number is greater than 0.5.'); >> else >> disp('Given random number is smaller than 0.5.'); >> end Given random number is less than 0.5. 有關程式流程控制,在本書的第十六章「程式流程控制」將會有更詳盡的介紹。
MATLAB程式設計:入門篇