用R构造约束矩阵

问题描述 投票:0回答:1

我想构造以下矩阵以在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)
}

我想知道是否可以使用更多的矢量化方法来构造此矩阵?

r matrix vectorization
1个回答
0
投票

也许与此类似:

x <- rep(rep(c(1, 0), c(4, 12)), 3)
matrix(x, ncol = 12, byrow = TRUE)[-4,]
© www.soinside.com 2019 - 2024. All rights reserved.