2012-03-25 5 views
3

に2次元マトリックスを追加します。私は、たとえば、3Dマトリックスに追加する必要が2D行列を持っています?行列をリストに変換すればもっと簡単でしょうか?ありがとう!が3Dマトリックス

それを明確にするために、我々はmx2dmx3dに持っているものに基づいて、私のようなものが欲しい:

> mx3d.new 
, , 1 

    [,1] [,2] [,3] [,4] [,5] 
[1,] 1 4 7 10 "a" 
[2,] 2 5 8 11 "b" 
[3,] 3 6 9 12 "c" 

, , 2 

    [,1] [,2] [,3] [,4] [,5] 
[1,] 13 16 19 22 "d" 
[2,] 14 17 20 23 "e" 
[3,] 15 18 21 24 "f" 

, , 3 

    [,1] [,2] [,3] [,4] [,5] 
[1,] 25 28 31 34 "g" 
[2,] 26 29 32 35 "h" 
[3,] 27 30 33 36 "i" 

, , 4 

    [,1] [,2] [,3] [,4] [,5] 
[1,] 37 40 43 46 "j" 
[2,] 38 41 44 47 "k" 
[3,] 39 42 45 48 "l" 

, , 5 

    [,1] [,2] [,3] [,4] [,5] 
[1,] 49 52 55 58 "m" 
[2,] 50 53 56 59 "n" 
[3,] 51 54 57 60 "o" 
+0

あなたは "に追加する" とはどういう意味ですか?行列の加算を意味する場合、行列の加算は、同じサイズの行列に対してのみ定義されます。 –

+0

更新された質問をご覧ください。どうも! – Rock

答えて

6
library(abind) 
mx3d.new <- abind(mx3d, mx2d, along= 2) 
for(i in 1:5) print(mx3d.new[,,i]) 

は、その仕事をしていますか?

それは私にこれを与える:

> for(i in 1:5) print(mx3d.new[,,i]) 

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

[1,] "1" "4" "7" "10" "a" 

[2,] "2" "5" "8" "11" "b" 

[3,] "3" "6" "9" "12" "c" 

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

[1,] "13" "16" "19" "22" "d" 

[2,] "14" "17" "20" "23" "e" 

[3,] "15" "18" "21" "24" "f" 

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

[1,] "25" "28" "31" "34" "g" 

[2,] "26" "29" "32" "35" "h" 

[3,] "27" "30" "33" "36" "i" 

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

[1,] "37" "40" "43" "46" "j" 

[2,] "38" "41" "44" "47" "k" 

[3,] "39" "42" "45" "48" "l" 

    [,1] [,2] [,3] [,4] [,5] 
[1,] "49" "52" "55" "58" "m" 

[2,] "50" "53" "56" "59" "n" 

[3,] "51" "54" "57" "60" "o" 
+0

ジムに感謝します。私はそれがかなりクールだと言わなければならない! 「気にしない」ことは決して知りませんでした。ありがとう! – Rock

2

を私は正しくあなたの質問を理解してわからないんだけど、

mx3d.new <- array(letters[1:75],c(3,5,5)) 
を行います

お好きなものをお選びください。または、繰り返したい場合は、

mx3d.new <- array(letters[1:15],c(3,5,5)) 

解決する問題の状況を説明すると、おそらくもっと助けてもらえます。

乾杯、 ジム

+0

私は質問についての説明を追加しました。それがそれ自身を説明することを願って – Rock

関連する問題