我有一个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