我有一個6,6,51陣列和一個51,6矩陣。我想要將矩陣1的第1行乘以矩陣中的第1行,然後將其作爲結果進行存儲。我想再次爲陣列中包含的每個矩陣中的每一行執行此操作。所以我會把數組中的第一個矩陣的第二行乘以矩陣的第一行。一旦我遍歷了數組中第一個矩陣的所有6行,我想在數組中的其餘50個矩陣上做同樣的事情。數組乘以矩陣中的各行
爲了幫助闡述我所問的問題,我將給出一個使用6,6,3數組和3,6矩陣的簡短例子。 ,我會做出一些數字,以便更容易查看:
array1 <- array(1:108, c(6,6,3))
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 7 13 19 25 31
[2,] 2 8 14 20 26 32
[3,] 3 9 15 21 27 33
[4,] 4 10 16 22 28 34
[5,] 5 11 17 23 29 35
[6,] 6 12 18 24 30 36
, , 2
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 37 43 49 55 61 67
[2,] 38 44 50 56 62 68
[3,] 39 45 51 57 63 69
[4,] 40 46 52 58 64 70
[5,] 41 47 53 59 65 71
[6,] 42 48 54 60 66 72
, , 3
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 73 79 85 91 97 103
[2,] 74 80 86 92 98 104
[3,] 75 81 87 93 99 105
[4,] 76 82 88 94 100 106
[5,] 77 83 89 95 101 107
[6,] 78 84 90 96 102 108
matrix1 <- matrix(1:18, nrow = 3, ncol = 6)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 4 7 10 13 16
[2,] 2 5 8 11 14 17
[3,] 3 6 9 12 15 18
基本上我想這樣做:
在矩陣1的陣列1 X ROW1矩陣1 ROW1
1*1 + 7*4 + 13*7 + 19*10 +25*13 + 31*16 = result
然後做矩陣1的2行中的矩陣1
等等等等起來的陣列1 X ROW1直到矩陣1的6行陣列1
然後在矩陣1的矩陣2上重複使用矩陣1的行2
這是否可理解?
如果有人可以幫忙嗎?
另外,有沒有辦法將矩陣1拆分成矢量?所以我可以得到51個獨立的向量來乘以每個數組?
問候
這看起來像R.如果是這樣,標記它。如果不是,則用適當的語言標籤標記它。 –
你確定矩陣的大小?它不應該是6 x 6嗎?因爲如果我們有一個尺寸爲6×6×51的數組,那麼將會有51個矩陣爲6×6。如果你的問題是正確的,你需要乘以一個6×51矩陣與6×6矩陣。 –
如果Kunal Puri提出的矩陣維數爲6 x 6,解決方案可能是:''apply(array1,3,function(x)rowSums(matrix1 * x))'' – Phann