我有一个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的row1在array1 x row1的matrix1中
1*1 + 7*4 + 13*7 + 19*10 +25*13 + 31*16 = result
然后在matrix1的array1 x row1中执行matrix1的row2
等等直到array1中的matrix1的第6行
然后使用matrix1的row2在array1的矩阵2上重复
这可理解吗?
如果有的话可以帮助吗?
或者,有没有办法将matrix1拆分成向量?所以我可以得到51个单独的向量与每个数组相乘?
问候
1 回答
好吧,因为我仍然不确定你是指6 x 3矩阵还是6 x 6矩阵,所以这里有两种情况的解决方案(类似于我的评论):
array1
的其他行和列将不适合matrix1
.简要解释如何获得解决方案:获取阵列的第一个平面并进行实验以获得所需的解决方案 .
rowSums
按照其名称的预期给出每行的总和 . 因此,数组中第一个平面的结果乘以矩阵并总结为矢量 .结果似乎是正确的,现在我们可以在数组的每个矩阵上找到解决方案,如答案的最顶部所示 .