matrix(1:9, nrow=3, ncol=3)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
数列(1:9)があるとき[1,1][2,1][3,1][1,2][1,3].....[3,3]の順に要素が充填される。これを列数が1の行列に変換すると。
matrix(matrix(1:9, nrow=3, ncol=3),ncol=1,byrow=T)
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[6,] 6
[7,] 7
[8,] 8
[9,] 9
順序は保たれる。しかし、もとの数列が順序を保ってない場合、つまり、c(1,4,7,2,5,8,3,6,9)のときは、以下の行列ができる。
matrix(c(1,4,7,2,5,8,3,6,9), nrow=3, ncol=3,byrow=F) # byrow=F is default.
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
その場合、"byrow=T" を利用して要素の充填順序を変えてやらなくてはならない。
matrix(c(1,4,7,2,5,8,3,6,9), nrow=3, ncol=3,byrow=T)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
そこで再び列数が1の行列に再変換してやる。再変換のときにはbyrow=Tはいらない。
matrix(matrix(c(1,4,7,2,5,8,3,6,9), nrow=3, ncol=3,byrow=T),ncol=1)
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[6,] 6
[7,] 7
[8,] 8
[9,] 9
please refer to this post as well.
0 件のコメント:
コメントを投稿