вычислять только диагонали умножения матриц в 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)

Ваш ответ на вопрос