Matlab 教材:輸入數值

Matlab 的 load 內建指令用來讀入當初被 save 指令輸出的數值, 還有這些數值的變數名。 小心,如果工作環境內原本有同名變數,將會被新變數覆蓋掉。 最簡單的用法就是

load
Matlab 會在目前工作的檔案夾內尋找 matlab.mat 檔案, 如果找到了就開啟,讀入檔案內的所有變數。 如果沒找到,她還會按照路徑 (用 path 獲得的結果) 來依序尋找, 直到遇上第一個 matlab.mat 為止; 如果整個路徑上都沒有 matlab.mat 才會回應錯誤訊息。

以下略為解釋 load 指令的其他用法。

load filename
如果 filename 含有相對或絕對路徑,就按照指定尋找特定的 filename.mat 檔案,否則就在目前檔案夾內、 或者按照路徑的順序尋找 filename.mat 檔案, 如果找到了就把其內所存的變數全部讀入工作環境。
load filename a b c
filename.mat 內讀取變數 a b c 的值。 注意參數之間以空格隔開,不要用逗點。

load 其實也可以讀入純文字檔案。不過,這個功能並不好用。 如果您現在有一大批純文字格式的數要輸入 Matlab,比較方便的作法是, 先用編輯器處理那一批數,把它寫成一個向量或矩陣的形式,儲存成 M-file, 然後執行那個 M-file。

舉例來說,如果已經有一個 foo.txt 檔案,內容是

34
32
94
30
87
可以把它改造成 foo.m 檔案,內容改成
g = [
34
32
94
30
87];
然後到 Matlab 裡面執行 foo 就把 g 向量讀入 Matlab 了。

Matlab 也提供非常一般性的檔案輸入功能, 可以從文字檔案或者任意一般檔案內,讀取有格式或無格式的資料。 它有類似 C 語言的 fopen(), fclose(), fscanf()fread() 函式,這些函式的用法與 C 語言的同名函式如出一轍, 讀者如果能使用 C 語言,就能使用這些函式, 因此我們就不在此介紹了。

習題

  1. 用 Matlab 讀取 bcc16.mat 檔案, 請問變數 T 的值是什麼?
  2. bcc16.txt 內 172 個數輸入 Matlab, 求其平均值。
單維彰 (2000/01/09) --- 2003/12/28 [Prev] [Next] [Up]