0

次のように配列に結合したいマトリックスがいくつかあります。

> mat1
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

> mat2
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

> mat3
     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18

私はこれを試しました:

dime=dim(mat1)
Array=array(mat1, mat2,mat3,dim(dime))

次のエラーが発生します。

Error in array(mat1, mat2, mat3, dim(dime)) : 
  unused argument(s) (dim(dime))

私は何が間違っているのでしょうか?

4

1 に答える 1

2

アップデート:

コメントから、必要なのはcbind次の 3 つの行列だけのようです。

> cbind(mat1, mat2, mat3)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]    1    3    5    1    3    5    1    3    5
[2,]    2    4    6    2    4    6    2    4    6

これらがたくさんある場合は、それらをリストに保持してから一緒に使用do.callするように手配するのが理にかなっていると思います。cbind

mlist <- list(mat1, mat2, mat3) ## simulate matrices stored as a list

## cbind them via a `do.call` call
do.call(cbind, mlist)

利回り

> do.call(cbind, mlist)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]    1    3    5    1    3    5    1    3    5
[2,]    2    4    6    2    4    6    2    4    6

オリジナル

マトリックスを配列内でどのように配置するかは、あまり明確ではありません。行列を紙の山のように積み上げ、紙の各葉が行列になるようにする場合は、行列を単純に連結して単一のベクトルにし、それを適切な引数でcに渡すことができます。例えばarraydim

> mat1 <- mat2 <- mat3 <- matrix(1:6, ncol = 3)
> array(c(mat1, mat2, mat3), dim = c(2,3,3))
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 3

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
于 2013-04-03T05:38:31.510 に答える