Dans R, I peut avoir une multiplication par morceaux entre une matrice et un (conforme) vecteur, par exemple:multiplication élément par élément entre matrice et la matrice
X <- matrix(c(1, 2, 3, 4), nrow = 2)
a <- c(0, 1)
X * a
Chaque ligne de la matrice est ensuite multipliée par l'élément vectoriel correspondant. Je peux également faire la même chose pour les tableaux de dimension plus grande que 2:
XX <- array(X, dim = c(2, 2, 2))
a <- c(0, 1)
XX * a
Encore une fois chaque rangée est multipliée par l'élément de vecteur correspondant. Puis-je faire quelque chose de similaire pour un tableau 3D et une matrice 2D? Je veux juste que chaque sous-matrice du tableau soit multipliée par éléments avec une matrice.
Vous pouvez trancher avec 'apply', mais il appelle' as.vector' sur les résultats de chaque tranche, détruisant les cotes. Il fait tous les calculs, donc, vous pouvez réinitialiser les dimensions (très attentivement!) Si vous le souhaitez. Une autre solution consiste à chuck chaque tranche dans une liste pour l'empêcher d'être simplifié. – alistaire