矩陣和映射包含兩方面的關係:code
簡單:已知矩陣 M, 從向量 x 映射到 M * x. (注:矩陣與行向量的點乘)blog
稍微複雜:已知映射 x ->
M * x, 求矩陣 M。圖片
第一種狀況直接運算就能夠獲得映射,就不詳細寫了,着重寫第二種狀況。io
首先,假設 x 爲 n 維行向量, M*x 爲 m 維列向量,能夠知道 M 是 m × n 大小的矩陣。在點乘裏面,M 的列向量是基向量, x 向量的每一個份量是線性組合的係數,M 矩陣能夠寫成:方法
怎麼求出 v1, v2, ..., vn 向量呢?利用基向量帶入便可獲得:im
例一 :將一張圖片向右拉伸兩倍,即 (x, y) 變爲了 (2x, y), 它的變換矩陣能夠這樣求:img
求得的變換矩陣就是 M = (v1, v2)e2e
例二 :將一張圖片逆時針旋轉 90 度,變換矩陣 M 能夠這樣求:co
求得的變換矩陣也是 M = (v1, v2)錯誤
一樣,將圖像旋轉 theta 角度和平移操做 (translation) 也能夠用這個方法求出變換矩陣。
根據上述方法雖然能夠求出圖像平移的變換矩陣,可是若是咱們將 [0, 0] 左邊進行變換,發現原點仍是在原點,並無平移,結果顯然是錯誤的,這是什麼緣由呢?這裏就不得不說一說線性映射了。
線性映射須要知足兩個條件:
首先,左乘矩陣確定是一個線性映射。考慮上面的例子,圖像伸縮、旋轉都符合兩個條件,而圖像平移不符合,所以不是線性映射,不存在變換矩陣。更進一步,何時纔是一一映射呢?當矩陣 M 是一個滿秩矩陣,此時 M 可逆,該映射是一個 one-to-one and onto 的線性映射。