在OPL-Cplex中追加数组。

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

假设我有一个如下的数组。

int a[1..4]=[1,2,3,4];
int b[1..2]=[5,6]

1)如果我需要创建一个如下的数组c,(1行6列)

int c[1..6]=[1,2,3,4,5,6] 

2)如果我需要用以上2个数组创建一个2D数组。例如:将上述2个1D数组连接起来,制作一个(2行×3列)数组。

int d[1.2][1.3]=[[1,2,3],[4,5,6]]。

你能不能告诉我如何从Cplex中获取输出。

cplex opl
1个回答
3
投票

你的问题的直接答案是这样的。

int a[1..4]=[1,2,3,4];
int b[1..2]=[5,6];

int c[i in 1..6] = (i <= 4) ? a[i] : b[i - 4];
int d[i in 1..2][j in 1..3] = c[(i - 1) * 3 + j];

main {
  writeln(thisOplModel.c);
  writeln(thisOplModel.d);
}

然而,对于 c 你可能会更好地使用套装。它们提供了一个联盟操作。

© www.soinside.com 2019 - 2024. All rights reserved.