excel - 将参数从 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 )
我的错误是什么?任何帮助将不胜感激,谢谢!
解决方案
看起来您t
在 Excel 文件中1 to 5
的集合是,而您t
在 GAMS 模型中的集合是t1 to t5
. 因此,您没有匹配的域,因此没有加载任何值。如果您使用$loadDC
(DC for Domain Checked) 而不是$load
GAMS,则会立即停止并通知您。
顺便说一句:您也可以使用隐式集合定义来轻松地从 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;
推荐阅读
- mysql - Laravel 选择 Raw 进入 Moloquent 查询
- google-sheets - 如何在过滤函数中使用单元格变量
- javascript - 如何使用 JQuery 删除动态表的特定行
- php - 使用应用程序登录保护上传的公共文件
- datepicker - 如何在 SwiftUI 中更改 DatePicker 的文本颜色?
- python - 如何将列表转换为具有数组中元素特定顺序的数组
- ssl - 如何知道 apache httpclient 使用的是什么版本的 SSL
- azure - Azure 表存储增量备份
- microsoft-graph-api - Microsoft graph api - 我想列出用户白天的所有会议/约会
- workspace - 如何在电脑驱动程序中更改练习中的工作区?