使用循环打印中间乘法

printing intermediate multiplication using loop

我有数据框 'df',它有 8*8 行和列。

这里我直接得到第5次乘法的答案,我想要所有中间乘法的答案。

而且我还想把代码循环15次,所以会有15个中间乘法输出。

Code: 

p <- eigen(df)$vector
d <- eigen(df)$values

n <- 5
p %*% diag(d^n) %*% solve(p)

预期输出将:如果我乘以 n = 15 次,那么每次中间乘法应该有 15 个矩阵。

请帮忙。

假设你的意思是幂(X^n)可以做到以下几点:

mat <- matrix(1:9, nrow=3)
n <- 5

pows <- list()
pows[[1]] <- mat
for (i in 2:n) {
    pows[[i]] <- pows[[i - 1]] %*% pows[[1]]
}

p <- eigen(mat)$vector
d <- eigen(mat)$values
res <- p %*% diag(d^n) %*% solve(p)

all(res - pows[[n]] < 1e-6)

也可以使用:

library(expm)
mat %^% n