J'ai un tableau 6,6,51 et une matrice 51,6. Je veux multiplier la ligne 1 de la matrice 1 dans le tableau, par la ligne 1 dans la matrice et ensuite stocker cela comme résultat. Je voudrais le faire à nouveau pour chaque ligne de chaque matrice contenue dans le tableau. Donc, je prendrais la deuxième rangée de la première matrice dans le tableau et la multiplierais par la première rangée de la matrice. Une fois que j'ai parcouru les 6 rangées de la première matrice du tableau, j'aimerais faire exactement la même chose sur les 50 matrices restantes du tableau.Tableau multiplié par des lignes individuelles dans la matrice
Pour aider à l'exposition de ce que je demande, je vais donner un exemple raccourci en utilisant un tableau 6,6,3 et une matrice 3,6. Je vais faire quelques chiffres il est donc plus facile de regarder:
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
Essentiellement, je voudrais faire:
ligne1 de la matrice 1 dans array1 x row1 de matrice1
1*1 + 7*4 + 13*7 + 19*10 +25*13 + 31*16 = result
puis faire row2 de matrix1 dans array1 x row1 de matrix1
etc etc jusqu'à ce que la ligne 6 de matrix1 dans array1
puis répétez sur la matrice 2 du tableau 1 en utilisant la ligne 2 de la matrice1
Est-ce que cela est intelligible?
Si oui, quelqu'un peut-il vous aider?
Est-il possible de séparer la matrice 1 en vecteurs? Donc, je pourrais juste obtenir 51 vecteurs séparés à multiplier contre chaque tableau?
Cordialement
Cela ressemble à R. Si oui, identifiez-le comme tel. Si ce n'est pas le cas, marquez-le avec l'étiquette de langue appropriée. –
Etes-vous sûr de la taille de la matrice? Ne devrait-il pas être 6 x 6? Parce que si nous avons un tableau de dimensions 6 x 6 x 51, alors il y aura 51 matrices de 6 x 6. Et si votre question est correcte, vous demandez de multiplier une matrice 6 x 51 avec une matrice 6 x 6. –
Si la dimension de la matrice est 6 x 6 comme Kunal Puri l'a suggéré, la solution serait probablement: '' apply (array1, 3, function (x) rowSums (matrice1 * x)) '' – Phann