15-1 Z

簡單地說,底稿(Scripts)即是一個副檔名為 m 的檔案,其內包含了 MATLAB 的各種指令,我們可以在 MATLAB 指令視窗下直接輸入此檔案的主檔名,MATLAB 即可逐一執行在此檔案內的所有指令,就彷彿我們在 MATLAB 指令視窗逐列輸入這些指令一般。本書幾乎所有的程式範例,都是以底稿呈現。

例如:假設在目前目錄下有一個M檔案「script01.m」,我們可用 type 指令顯示其內容,如下:

>> cd ’d:\matlabBook\MATLAB程式設計:入門篇\15-M檔案’ >> type script01.m clear all % 清除所有變數 x = [1 4 -2 3 -1 -5]; for i = 1:length(x), if x(i)>0, fprintf('x(%g) = %g is positive\n', i, x(i)); else fprintf('x(%g) = %g is negative or zero\n', i, x(i)); end end

欲執行 script01.m,直接在 MATLAB 指令視窗下輸入 script01 即可:

>> script01 x(1) = 1 is positive x(2) = 4 is positive x(3) = -2 is negative or zero x(4) = 3 is positive x(5) = -1 is negative or zero x(6) = -5 is negative or zero

執行此程式底稿的效應,相當直接在 MATLAB 指令視窗下直接下達 script01.m 裡的每一列指令,所產生的變數也都存放在 MATLAB 的基本工作空間(Base Workspace),可驗證如下:

>> whos Name Size Bytes Class i 1x1 8 double array x 1x6 48 double array Grand total is 7 elements using 56 bytes

Hint
您也可在一函式中呼叫一程式底稿,此時所產生的變數即會放在該函式的工作空間中。

程式底稿最適用於對付簡單但重複性高的程式碼,但他並不支援輸入及輸出引數(Input/Output Arguments),而且由於所產生的變數均出現在基本工作空間,容易造成變數的互相覆蓋而造成程式錯誤的產生。欲改良這些底稿的缺點,可改用函式,將在下節介紹。

然而,底稿也有他的優點:由於所產生的變數均保留在基本工作空間中,所以很容易進行變數檢視及除錯。

M 檔案是一個文字檔,所以您可以用各種文字編輯器去修改他,但記得在儲存檔案時,必需以文字模式儲存。此外,MATLAB 在 Windows 及 Mac 的平台上,亦提供了一個內建的「M 檔案編輯器」(M-File Editor),您可以點選 MATLAB 指令視窗的 file/open 下拉式選單,來開啟 M 檔案編輯器,另一種更快的方法,則是在 MATLAB 指令視窗只接鍵入「edit filename.m」 或是「open filename.m」。例如 ,欲開啟 Script01.m,可輸入如下:

>> edit script01.m

M 檔案編輯器會以不同的顏色來顯示註解、關鍵字、字串、及一般程式碼,在使用上相當方便。

Hint
事實上,M 檔案編輯器也是一個除錯器(Debugger),欲使用其除錯功能,可詳見本書第十七章「程式除錯」。


MATLAB程式設計:入門篇