Matlab 教材:矩陣的對應元計算
Matlab 提供一批「點運算」符號 (dot operators),
有時候它們的功能不太合「邏輯」,但是練習一番之後應該會發現它們很合「需要」。
這些運算符號可以大大增強 Matlab 的資料處理能力。
大致上,這些「點運算」就是為了達到「逐項計算」或者「對應項計算」的效果。
複習加號 + 的作用:
- 純量相加、維度相同的矩陣 (含向量) 相加,都如數學定義,也就是對應項相加。
- 純量與矩陣 (含向量) 相加,將純量加到矩陣的每個元素。例如
1 + [1 2 3]
得到結果 2 3 4,也就有逐項相加的效果。
減號 - 的作用也一樣,不再贅述。
複習乘號 * 的作用:
- 純量相乘、維度「相容」的矩陣 (含向量) 相乘,都如數學定義。
- 純量與矩陣 (含向量) 相乘,將純量乘到矩陣的每個元素。例如
-1 * [1 2 3]
得到結果 -1 -2 -3,也就有逐項相乘的效果。
但是乘號卻沒有讓兩個維度相同的矩陣「對應項相乘」的機能。
這就是「點乘」.* 符號的功效:
[1 2 3] .* [-2 0 2]
就等於是
[1*(-2) 2*0 3*2]
得到結果 -2 0 6。
複習左除 \ 和右除 / 的作用:
- 若 x 是非零的純量,y 是另一個純量,則 x\y 和 y/x 都是 y 除以 x 的意思。
- 若 x 是非零的純量,A 是一個矩陣,則 A/x 或 x\A 都是 A 的元素逐項除以 x
的意思。例如
2 \ [1 2 3]
和
[1 2 3] / 2
都得到 0.5000 1.0000 1.5000。
- 如果 A 是可逆方陣,B 是維度相同的方陣,則 A\B 是 A-1B
的意思,而 B/A 是 B A-1 的意思。
可見除號沒有「對應項相除」的機能,
這就是「點除」./ 或 .\ 符號的功效:
維度相同的兩個矩陣做點除,就是對應項相除。例如
[-2 0 2] ./ [2 4 8]
就等於是
[(-2)/2 0/4 2/8]
得到結果 -1.0000 0 0.2500。
複習次方 ^ 的作用:
- 純量的純量次方,如數學定義。
- 方陣的正整數次方,如數學定義,就是方陣連乘。
- 方陣的零次方就是同維度的單位方陣。
- 如果方陣可逆,則方陣的負整數次方就是其逆矩陣的連乘。
可見次方沒有「對應項次方」或「逐項次方」的機能,
這就是「點次方」.^ 符號的功效:
- 純量的矩陣點次方,就將矩陣內的元素逐項做次方。例如
2 .^ [-2 0 2]
就等於是
[2^(-2) 2^0 2^2]
得到結果 0.2500 1.0000 4.0000。
- 矩陣的純量點次方,就將矩陣內的元素逐項做次方。例如
[-2 0 2] .^ 3
就等於是
[(-2)^3 0^3 2^3]
得到結果 -8 0 8。
- 維度相同的兩個矩陣做點次方,就是對應項做次方。例如
[-2 0 2] .^ [-2 0 2]
就等於是
[(-2)^(-2) 0^0 2^2]
得到結果 0.2500 1.0000 4.0000。
習題
單維彰 (2003/04/10) ---