假设我有一个带有两个标签的excel工作簿。两个选项卡都包含像
这样的二维矩阵# 1st tab # 2nd tab
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
如何在IBM ILOG中的三维数组中获取这两个选项卡?官方IBM支持页面无法再找到主题Reading a 3-dimensional array from an Excel。这是一个死链接。愿有人帮我这个吗?它应该像arrayExample
一样可用。不是一个元组或其他任何东西而不是数组。
int arrayExample[i][j][s] = [[[1,1,1], [1,1,1], [1,1,1]], [[1,1,1], [1,1,1], [1,1,1]]];
答案 0 :(得分:1)
如果您仍然无法访问该链接,请参阅该技术说明中的信息:
答案:
使用中间数组(1或2维) 通过调用SheetRead()指令读取所有数据。然后 初始化你的三维数组:
模型文件(.mod):
int nbMonths = ...;
int nbProducts = ...;
int nbLevels = ...;
//如果数据元素按列组织
int nb1[1..nbMonths*nbProducts*nbLevels] = ...;
int nbArray[m in 1..nbMonths, p in 1..nbProducts,s in1..nbLevels]= nb1[s+nbLevels*(p-1)+nbProducts*nbLevels*(m-1)];
//如果数据元素是二维数组
int nb2[1..nbMonths, 1..nbProducts*nbLevels] = ...;
int nbArray2[m in 1..nbMonths, p in 1..nbProducts,s in 1..nbLevels] = nb2[m,s+nbLevels*(p-1)];
数据文件(.dat)
SheetConnection sheetInput("3DimArray.xls", 0);
nb1 from SheetRead(sheetInput,"data!D2:D13");
nb2 from SheetRead(sheetInput,"data!B17:G18");
注意:电子表格和数据库表格中的数据通常是 2维。因此无法存储三维数组 电子表格或数据库表本身。