簡單地說,底稿(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
程式底稿最適用於對付簡單但重複性高的程式碼,但他並不支援輸入及輸出引數(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 檔案編輯器會以不同的顏色來顯示註解、關鍵字、字串、及一般程式碼,在使用上相當方便。
MATLAB程式設計:入門篇