算額あれこれ

算額問題をコンピュータで解きます

ダメ出し:行列の回転

image関数でイメージする(R Advent Calenderの番がきた) にて

> (x <- matrix(1:12,ncol=3))
     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12

> (y <- t(x[nrow(x):1,ncol(x):1])[ncol(x):1,])
     [,1] [,2] [,3] [,4]
[1,]    4    3    2    1
[2,]    8    7    6    5
[3,]   12   11   10    9

というのだが,以下のようにすればよい。

(y <- t(x[nrow(x):1,]))

ついでに,左90度回転

> t(x[,ncol(x):1])
     [,1] [,2] [,3] [,4]
[1,]    9   10   11   12
[2,]    5    6    7    8
[3,]    1    2    3    4

さらについでに,180度回転

> x[nrow(x):1, ncol(x):1]
     [,1] [,2] [,3]
[1,]   12    8    4
[2,]   11    7    3
[3,]   10    6    2
[4,]    9    5    1