我想构造以下矩阵以在R中对ILP进行建模。变量的实际含义并不真正相关,相关的是以下属性。
我想用n
个矩阵构成n x m
列数的矩阵。
对于第一行,我想有n
个(从位置0开始)。
对于第二行,我想先有n
个零,然后有n
个,其余的列为零。
对于第三行,我想将n x 2
设为零,然后将n
设为零,其余的列设为零。
继续进行,直到我在开始处有n x (m-1)
个零,在结束处有n
个零。
矩阵的一个小例子如下:
1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1
生成此矩阵的代码是:
f.con <- matrix(0, nrow = 3, ncol = 12)
for(i in 1:3){
f.con[i,((i-1)*4+1):(4*i)] <- rep(1, 4)
}
我想知道是否可以使用更多的矢量化方法来构造此矩阵?
也许与此类似:
x <- rep(rep(c(1, 0), c(4, 12)), 3)
matrix(x, ncol = 12, byrow = TRUE)[-4,]