The horizontal concatenation of expressions.
This is equivalent to cbind
when applied to objects with the same number of rows.
hstack(...)
Expression objects, vectors, or matrices. All arguments must have the same number of rows.
An Expression representing the concatenated inputs.
x <- Variable(2)
y <- Variable(3)
c <- matrix(1, nrow = 1, ncol = 5)
prob <- Problem(Minimize(c %*% t(hstack(t(x), t(y)))), list(x == c(1,2), y == c(3,4,5)))
result <- solve(prob)
result$value
#> [1] 15
c <- matrix(1, nrow = 1, ncol = 4)
prob <- Problem(Minimize(c %*% t(hstack(t(x), t(x)))), list(x == c(1,2)))
result <- solve(prob)
result$value
#> [1] 6
A <- Variable(2,2)
C <- Variable(3,2)
c <- matrix(1, nrow = 2, ncol = 2)
prob <- Problem(Minimize(sum_entries(hstack(t(A), t(C)))), list(A >= 2*c, C == -2))
result <- solve(prob)
result$value
#> [1] -4
result$getValue(A)
#> [,1] [,2]
#> [1,] 2 2
#> [2,] 2 2
D <- Variable(3,3)
expr <- hstack(C, D)
obj <- expr[1,2] + sum(hstack(expr, expr))
constr <- list(C >= 0, D >= 0, D[1,1] == 2, C[1,2] == 3)
prob <- Problem(Minimize(obj), constr)
result <- solve(prob)
result$value
#> [1] 13
result$getValue(C)
#> [,1] [,2]
#> [1,] 6.665644e-31 3.000000e+00
#> [2,] 6.665644e-31 6.665644e-31
#> [3,] 6.665644e-31 6.665644e-31
result$getValue(D)
#> [,1] [,2] [,3]
#> [1,] 2.000000e+00 6.665644e-31 6.665644e-31
#> [2,] 6.665644e-31 6.665644e-31 6.665644e-31
#> [3,] 6.665644e-31 6.665644e-31 6.665644e-31