【发布时间】:2018-05-25 17:44:54
【问题描述】:
我有一个链格式的矩阵乘法问题。 我只有一个输入矩阵 A,将保存矩阵 B
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
d
[,1] [,2]
[1,] 80 72
[2,] 96 80
e
e
[,1] [,2]
[1,] 2432 2112
[2,] 2816 2432
所以这应该重复 18 次。请帮忙。提前致谢。
【问题讨论】:
-
怎么样
Reduce('%*%', mget(letters[1:5]), accumulate = TRUE) -
你需要18次后直接得到答案还是你还需要中间步骤作为矩阵?
-
@akrun 我尝试使用您的代码:我只确定字母 A 和 B,因此这不起作用。它应该在循环中。
-
@Ronak,所有乘法的直接答案。这意味着 18 个矩阵。
-
您可能需要
c <- d <-e <- matrix(1, 2, 2)