В R, я могу иметь кусочно-умножение между матрицей и (конформной) вектора, например:поэлементного умножения между матрицей и матрицей
X <- matrix(c(1, 2, 3, 4), nrow = 2)
a <- c(0, 1)
X * a
Каждая строка матрицы затем умножается соответствующий векторный элемент. Я также может делать то же самое для массивов размерности больше, чем 2:
XX <- array(X, dim = c(2, 2, 2))
a <- c(0, 1)
XX * a
Опять каждая строка умножается на соответствующий элемент вектора. Могу ли я сделать что-то подобное для 3d-массива и матрицы 2d? Я просто хочу, чтобы каждая подматрица массива была умножена на элементы с матрицей.
Вы можете срезать с помощью 'apply', но он вызывает' as.vector' по результатам каждого фрагмента, уничтожая размеры. Однако он выполняет все вычисления, поэтому вы можете сбросить измерения (очень осторожно!), Если хотите. Другим обходным решением является выбор каждого фрагмента в списке, чтобы он не упрощался. – alistaire