在ibm网站http://www-01.ibm.com/support/docview.wss?uid=swg21573358上 他们在Main Opl脚本中定义并初始化了二维数组,如下所示:
primefaces
我正在尝试定义和初始化3维数组,但我定义和初始化的数组给我“结果未定义” 我的代码如下:
main {
var var_2d = new Array(3);
for (var i=0; i<3; i++) {
var_2d[i] = new Array(3);
for(var j=0; j<3; j++) {
var_2d[i][j] = 1;
}
}
}
我得到的价值是
a =2
m=3;
n= 2;
Range A= 1..2;
Range M = 1..3;
Range N = 1..2;
// declare 3 dimensional array in the Main script
main{
var var_var_temp2 = new Array (thisOplModel.a+thisOplModel.m+thisOplModel.n) ;
// initialize the 3 dimensional array
for( var r in thisOplModel.A){
var_var_temp2[r] = new Array(thisOplModel.m);
for( var i in thisOplModel.M) {
var_var_temp2[r][i] = new Array(thisOplModel.n);
for ( var j in thisOplModel.N) {
var_var_temp2[r][i][j]= 1.0;
}
}
}
// code to print the value stored in temp2[r][i][j]
for (r in thisOplModel.A) {
for (i in thisOplModel.M){
for (i in thisOplModel.N) {
writeln( var_var_temp2[r][i][j]);
}
}
}
}
答案 0 :(得分:0)
按原样,您的示例在CPLEX Optimization Studio 12.8中存在语法错误。
如果将顶部更改为以下内容:
int a = 2;
int m = 3;
int n = 2;
range A = 1..2;
range M = 1..3;
range N = 1..2;
也就是说,包括类型并将“ Range”替换为“ range”,那么它似乎运行良好。输出是我们期望的:
1
1
1
1
1
1
1
1
1
1
1
1