2009-10-30 232 views
1

給定一個4x4矩陣,如果矩陣向右旋轉90度,我可以對每個(x,y)單元應用什麼公式來生成(x,y)?我嘗試遍歷每個單元格,但不同的單元格給出了不同的公式。旋轉多維矩陣

給定下列矩陣的值。

0 | 0,3 | 0,2 | 0,1 | 0,0 | 
1 | 1,3 | 1,2 | 1,1 | 1,0 | 
2 | 2,3 | 2,2 | 2,1 | 2,0 |  
3 | 3,3 | 3,2 | 3,1 | 3,0 | 
    -------------------------- 
    0  1  2  3 

即:

0| | | | | 
1| | | | | 
2| | | | |  
3| | | | | 
------------- 
    0 1 2 3 

通過使用下面的矩陣中的匹配單元在(X,Y)的值移動到(X,Y)值旋轉值90度

If cell (0,0) has the value 5, 
using the translation matrix 5 would move to (3,0). 

對這個平移矩陣進行硬編碼是單調乏味且容易出錯的,如果矩陣尺寸增長到巨大數字,那麼手工操作只會延遲。

+0

示例這是一個二維矩陣。你想旋轉一個矩陣超過兩個維度? – 2009-10-30 17:38:10

回答

3

如果你有一個n通過n矩陣,假設(i, j)意味着i行第j列,一個向右旋轉:

the cell (i, j) will move to (j, n-i) 

這裏是你如何看待它。圖片整個i第th行。旋轉矩陣時,整行會變成整列。哪一個?它將從右邊的i列開始,即列n-i

現在圖片整個j第th列。當你旋轉時,列變成行。哪一個?它將從頂部起爲j行,即,行j

+0

這似乎工作,謝謝! 我只是在我嘗試的方程中使用i和j,導致結果波動,我猜n是必要的。 – TheOne 2009-10-30 17:17:22

+0

推測「波動」意味着你也反映了矩陣。 – Cascabel 2009-10-30 17:20:23