我有一个链式的矩阵乘法问题。我只有一个输入矩阵A,将保存矩阵B <-矩阵A.需要以以下方式进行乘法
A * B = C
B * C = D
C * D = E
D * E = F
这一连串的乘法一直持续到18个月。我尝试了下面的代码:但是无法选择我应该选择的循环。
矩阵A:
2 3
4 2
代码:
a = matrix( c(2, 3, 4, 2), nrow=2, ncol=2, byrow = TRUE)
a
b <- a
b
c = b %*% a
c
d <- c %*% b
d
e <- d %*% c
e
我正在手工做这个乘法,直到,我想用链循环的方式做18次。
预期产出:
一个
[,1] [,2]
[1,] 2 3
[2,] 4 2
B
[,1] [,2]
[1,] 2 3
[2,] 4 2
C=b%*a C
[,1] [,2]
[1,] 16 12
[2,] 16 16
D <- c %*% b D
[,1] [,2]
[1,] 80 72
[2,] 96 80
E <- d %*% c E
[,1] [,2]
[1,] 2432 2112
[2,] 2816 2432
所以这种情况应该重复18次。请帮帮忙。提前谢谢。
发布于 2017-12-11 22:07:32
一个for循环在这里会有帮助。
matA <- matrix(c(2,4,3,2), ncol=2,nrow=2)
output_var<- array(dim=c(2,2,18))
output_var[,,c(1:2)] <- matA
for (i in c(3:18))
{
output_var[,,i] <- output_var[,,(i-1)]%*% output_var[,,(i-2)]
}
output_var
https://stackoverflow.com/questions/47765860
复制相似问题