мне нужно только диагональные элементы матрицы умножения:вычислительные только диагональные матрицы умножения в R
,
в R. Поскольку Z огромна, я хочу, чтобы избежать полного выхода умножения ... .
Z <- matrix(c(1,1,1,2,3,4), ncol = 2)
Z
# [,1] [,2]
#[1,] 1 2
#[2,] 1 3
#[3,] 1 4
X <- matrix(c(10,-5,-5,20), ncol = 2)
X
# [,1] [,2]
#[1,] 10 -5
#[2,] -5 20
Z %*% D %*% t(Z)
# [,1] [,2] [,3]
#[1,] 70 105 140
#[2,] 105 160 215
#[3,] 140 215 290
diag(Z %*% D %*% t(Z))
#[1] 70 160 290
X всегда небольшая квадратная матрица (2x2, 3x3 или 4x4), где Z будет иметь число столбцов, равное размерности X. есть функция доступна, чтобы сделать это?
+1 Действительно хороший подход. –
@Marcinthebox, спасибо. Пока вы не поддержали меня, мне было интересно, заметит ли кто-нибудь! – BrodieG
Я должен был попробовать свои собственные пробные и поисковые ошибки на некоторое время, прежде чем я понял, что вы давно обнаружили. Опоси –