首页 > 解决方案 > 将参数从 Excel 导入 GAMS:全为零

问题描述

我有一个带有电子表格 GAMS 的 Excel 文件 GAMS2.xlsx,其中包含如图所示的数据

在此处输入图像描述

在 GAMS 我写了这样的代码:

Set t /t1*t5/;
 
Parameters
W(t);
$call gdxxrw GAMS2.xlsx par=W rng=GAMS!A3:B7 rdim=1 dset=t rng=GAMS!A3:A7 rdim=1
$gdxin GAMS2.gdx
$load W
$gdxin

Display W;

然后我得到了很好的 gdx 文件

在此处输入图像描述

所以,运行后我没有错误,但参数 W 的所有值都是零。在我看到的第一个文件中:

----     6 PARAMETER W

                      ( ALL       0.000 )

我的错误是什么?任何帮助将不胜感激,谢谢!

标签: excelgams-math

解决方案


看起来您t在 Excel 文件中1 to 5的集合是,而您t在 GAMS 模型中的集合是t1 to t5. 因此,您没有匹配的域,因此没有加载任何值。如果您使用$loadDC(DC for Domain Checked) 而不是$loadGAMS,则会立即停止并通知您。

顺便说一句:您也可以使用隐式集合定义来轻松地从 GDX 填充集合 t。看起来像这样:

Set t;
 
Parameters W(t<);

$call gdxxrw GAMS2.xlsx par=W rng=GAMS!A3:B7 rdim=1 dset=t rng=GAMS!A3:A7 rdim=1
$gdxin GAMS2.gdx
$load W
$gdxin

Display W;

推荐阅读