我希望构造像一个矩阵(其中A是一个真正的矩阵,I是单位矩阵):构建矩阵相乘出子矩阵有效
我不希望使用for循环。我试过的东西是:
sequence = 1:T
sapply(sequence, function(i) matrix(A%^%(i-1)))
但失败。我想创建图片中的第一个矩阵列,并继续复制计算矩阵diagonaly,但我不知道如何实现这一点。
编辑:我非常抱歉,我造成的麻烦。下面就是我在寻找一个快速和肮脏的for循环
library("expm")
n<-5
A<-matrix(1, 2, 2)
output <- matrix(0, 5*2, 5*2)
for (i in 1:5) {
for (j in i:1) {
output[(2*(i-1)+1):(2*i),(2*(j-1)+1):(2*j)] = A %^% (i-j)
}
}
快速和脏循环通常是要走的路... – user20650
ps你应该在答案部分发布你的解答作为答案,而不是作为你的问题的编辑 – user20650
问题是,我想运行循环从一个时间敏感的模拟研究中从上面 - 所以我必须尽可能快地编码。上述解决方案只是为了举例说明我正在尝试做什么。一方面,它的缺点是,A^i(对于i是一个任意的自然数)的计算一遍又一遍地完成。我在最近的回答中纠正了这个问题。但我认为,应用类似功能的过程可能会更快。 – user241879