Matlab 在 Windows 系統內的提示號是所謂的 raquo 符號, 屬於 Latin-1 字集,字碼是 187,因為是一個高拜, 所以在中文 Windows 環境中被認為是 Big-5 字碼的首碼, 但是 Big-5 又沒有一個對應的字。 因此,在中文 Windows 環境中看不到 Matlab 的提示號。 此處我們用兩個大於箭頭,表示 Matlab 的提示號。 Matlab 就像一個計算器 (Calculator)。計算結果輸出在螢幕上, 並自動將它儲存在一個稱為 ans 的變數裡面。 >> 1+1 ans = 2 如果指令以分號結束,結果不顯示在螢幕上。 >> 2+2; 但是計算結果還是儲存到 ans 變數裡面了。如果指令就只是一個變數的名字, Matlab 就輸出它的值。 >> ans ans = 2 任何變數不必宣告就可以直接使用。如果 x 原來不存在,設定它的值之後, 它就存在了。 >> x=1 x = 1 不必宣告變數的資料型態。其實 Matlab 內部一律以雙精度浮點數來儲存數值, 但是在輸出的時候,如果發現小數點以下都是 0,就不輸出小數部分。 否則,它就輸出 5 位數字。 >> x = x/2 x = 0.5000 如果覺得只看到 5 位不過癮,可以要求看到更多雙精度浮點數的有效數字。 那就是要求 Matlab 改變輸出格式。改變輸出格式的指令是 format, 標準格式是 short,長輸出格式是 long。 下指令 format 就還原到標準格式。 >> x = x/7; >> format long >> x x = 0.07142857142857 >> format >> x x = 0.0714 Matlab 變數的命名原則和 C 一樣。大小寫有分。所以 x 和 X 將會不同。 >> X ??? Undefined function or variable X. 橫向量,或稱序列 >> a = [1 2 3] a = 1 2 3 在 [ ] 裡面,一個分號代表一列的結束 >> c = [4; 5; 6] c = 4 5 6 則 a 的維度是 1x3 而 c 是 3x1。它們可以做矩陣乘積,也就是 a 和 c 的內積 >> a*c ans = 32 或者可以說 >> dot(a,c) ans = 32 c 乘 a 也可以做,按照矩陣乘法規則,就會形成一個 3x3 的矩陣 >> A = c*a A = 4 8 12 5 10 15 6 12 18 但是 a 乘 a 就不合矩陣乘法規則了 >> a*a ??? Error using ==> * Inner matrix dimensions must agree. 不過,如果要兩個維度相同的向量或矩陣,做兩者元素的對應項相乘, 可以用 .* 運算符號 >> a .* a ans = 1 4 9 其實,一個純量就是 1x1 矩陣,n 維向量就是 nx1 矩陣, n 維序列就是 1xn 矩陣。所以,以後沒必要仔細分別的時候, 我們一律以矩陣來通稱純量、向量、序列和矩陣。 相對於 .* 是將兩個維度相同的矩陣對應項元素相乘, 則 .^ 是將一個矩陣的每個元素做次方運算。 >> b = a.^2 b = 1 4 9 >> a.*b ans = 1 8 27 Matlab 提供許多標準的計算器功能,例如計算 e = 2.71828... 的指數函數 exp、 自然對數函數 log、開平方根函數 sqrt、三角與反三角函數等等。 當這些計算函式作用在矩陣上時,意思是把矩陣中的每個元素做運算。 >> exp(a) ans = 2.7183 7.3891 20.0855 >> log(ans) ans = 1 2 3 >> sqrt(b) ans = 1 2 3 >> 4 * atan(1) ans = 3.1416 當數值很大或很小的時候,Matlab 的標準輸出格式會變成 5 位有效數字的科學記號 >> 2^(-52) ans = 2.2204e-16 如果要看到長輸出格式的科學記號,也是用 format long 這個指令。 Matlab 內建 pi 變數,儲存圓周率的雙精度浮點數值。 >> sin(pi/2) ans = 1 用鍵盤上的 Backspace, Delete, 左、右箭頭,可以做指令列的編輯。 按上、下箭頭,可以一序列出以前下過的指令。 先輸入一個或幾個字元,然後按上、下箭頭,可以搜尋前、後一個以這些字元開頭的指令。 試試看,並多做些實驗。 到目前為止,Matlab 是數學界公認的最佳數學計算軟體。