Hi
I address the 1D question at https://www.ibm.com/developerworks/community/forums/html/topic?id=cbefff10-5006-439e-8a73-f7f7d0af05a5&ps=25
Again for OPL arrays, that's quite easy
int aInt3D[i in 1..3][j in 1..2][k in 1..4]=i+j+k;
execute
{
writeln("aInt3D=",aInt3D);
}
which gives
aInt3D= [[[3 4 5 6]
[4 5 6 7]]
[[4 5 6 7]
[5 6 7 8]]
[[5 6 7 8]
[6 7 8 9]]]
But for scripting arrays, it is not that easy.
execute
{
function displayScriptArray1D(a)
{
var res="[";
for(var i=1;i<=a.length-2;i++) res=res+a[i]+",";
res=res+a[a.length-1];
res=res+="]";
return res;
}
// return a string for the display of array a that has n dimensions
function displayScriptArraynD(a,n)
{
if (n==1) return displayScriptArray1D(a);
var res="[";
for(var i=1;i<=a.length-2;i++) res=res+displayScriptArraynD(a[i],n-1)+",";
res=res+displayScriptArraynD(a[a.length-1],n-1);
res=res+="]";
return res;
}
}
execute
{
var a2D=new Array(3);
a2D[1]=new Array(1);
a2D[2]=new Array(2);
a2D[3]=new Array(3);
a2D[1][1]="A";
a2D[2][1]=1;
a2D[2][2]=3;
a2D[3][1]="B";
a2D[3][2]=2;
a2D[3][3]=4;
writeln("a2D=",displayScriptArraynD(a2D,2));
var a3D=new Array(2);
a3D[1]=new Array(2);
a3D[2]=new Array(2);
a3D[1][1]=new Array(2);;
a3D[1][2]=new Array(2);;
a3D[2][1]=new Array(2);;
a3D[2][2]=new Array(2);;
for(var i=1;i<=2;i++) for(var j=1;j<=2;j++) for(var k=1;k<=2;k++) a3D[i][j][k]=4*(i-1)+2*(j-1)+k-1;
writeln("a3D=",displayScriptArraynD(a3D,3));
}
gives
a2D=[[A],[1,3],[B,2,4]]
a3D=[[[0,1],[2,3]],[[4,5],[6,7]]]
regards
#DecisionOptimization#OPLusingCPLEXOptimizer