Matlab 教材:Matlab 腳本程式

這一節要用到前一節的程式,如果有必要,請回去仔細讀過。

前一節說要把程式寫得「整齊」一點,如下:

N = 100;
err = 5e-15;
x = 0;
for k=0:N,
    x = x + 1/2^k;
    if (abs(x-2) <= err),
        break;
    end
end
k
但是,如果是在 Matlab 的操作介面上面寫程式,萬一按了 Enter 之後才發現寫錯了, 很難回去修改。而且,萬一執行之後想要修改參數,例如想把 err = 5e-15; 改成 err = 1e-10; 都很麻煩。 一旦像這樣有一大批指令要輸入給 Matlab 執行, 就相當於在「寫程式」了。 既然要寫程式,那麼最好另外開啟一個檔案,把程式的「原始碼」寫在裡面。 這樣,一來方便修改 (不管是因為錯誤而修改,還是改變參數), 二來也不會因為 Matlab 結束了而失去原始碼: 只要把原始碼檔案儲存起來,將來還可以重複使用。

Matlab 腳本程式的寫作很簡單,凡是你可以寫在 Matlab 操作介面中的指令, 都可以寫在腳本內。只有兩個規定:

  1. 腳本必須是一個純文字檔案,而且副檔名必須是 m,故又稱為 M-file
  2. 腳本的檔案必須在 Matlab 的「搜尋路徑」上
我們先談第一點,第二點留待下一節。

既然 Matlab 腳本就像所有程式語言的原始碼一樣,必須是純文字文件, 那麼當然要用一個「編輯器」來撰寫。 Matlab 套裝軟體提供一個編輯器,但是讀者可能不是只會寫 Matlab 腳本的人, 既然您將會撰寫許多種不同程式語言的原始碼, 不如花一點時間學習一種上手的編輯器:不論為哪一種語言編寫原始碼, 都可以用同一個您最順手的編輯器。 這是 第6講 的主要技能項目,在此不再多寫。

使用編輯器製造純文字文件,然後以 m 作為副檔名存檔, 就是一個 M-file。例如現在以 foo.m 為名, 將上述 Matlab 指令寫到 foo.m 裡面,存檔,就是一個 M-file, 它的內容是一個 Matlab 腳本程式。

有些作業系統,例如微軟 Windows,會「隱藏副檔名」。 因此,有可能發生這樣的情況:您設定檔案名為 foo.m, 在螢幕上看到的檔案名也是 foo.m,但是其實 Windows 給它的檔案名是 foo.m.txt 或者甚至是 foo.m.doc, 只是 .txt 或者 .doc 被隱藏了沒看到。 這樣的話,那就不是一個 M-file,而 Matlab 可能無法讀取這個檔案作為腳本程式。 專業的電腦使用者應該不要「隱藏副檔名」。 這是 第4講 的課題,有必要的話,回去再學習。 請先做好下列習題 (之一),再進入下一節。

習題

  1. 若使用 Unix,在自己的個人根目錄 (Home Directory) 建立一個 matlab 檔案夾,在裡面建立這一小節所述的 foo.m 檔案。
    若使用微軟 Windows,在 [我的文件夾] 裡面建立一個 Matlab 檔案夾, 在裡面建立這一小節所述的 foo.m 檔案。
  2. 下載一份已經寫好的 M-file eigshow.m, 若使用 Unix,在自己的個人根目錄 (Home Directory) 建立一個 matlab 檔案夾,將 eigshow.m 存在裡面。
    若使用微軟 Windows,在 [我的文件夾] 裡面建立一個 Matlab 檔案夾, 將 eigshow.m 存在裡面。
    eigshow.m 簡介:這是一個含有圖形操作介面的腳本程式, 它讓使用者選擇「特徵值」(eigen value) 或者「奇異值」(singular value), 然後再選擇矩陣。在視窗中可以拉動單位圓上的點,觀察被矩陣映射的值, 並觀察特徵值或奇異值在平面上的意義。
單維彰 (2004/04/28) --- [Prev] [Next] [Up]