我有一个GAMS代码,我想要一个if语句。我已经读过关于美元状况的消息,我认为它可以帮助我。阅读GAMS user guide,它说:
美元条件
本节介绍美元运算符,它是GAMS最强大的功能之一。美元运算符以逻辑条件运行。术语$(条件)可以理解为'这样条件有效'条件是合乎逻辑的条件。
注意: 美元逻辑条件不能包含变量。但是,允许使用变量属性(如.l和.m)。
美元运算符用于建模条件赋值,表达式和方程。以下小节提供了一个澄清其用途的示例。下一节将分别讨论使用美元条件对条件赋值,表达式和方程进行建模的主题。
我已经在我的代码中尝试过了,但我仍然发现了同样的错误:
*** C:\ route \ Filename.gms中的错误53
不允许内生$操作
这是我的实际代码:
ACUMULADO_FIN_GRUPOS(k,l,t)..
GA(k,l,t)$(GA(k,l,t) GE GT(k,l)) =E= 0 ;
(如果变量的值大于或等于另一个变量,我想将变量的值更改为0)。我也尝试过.l属性:
ACUMULADO_FIN_GRUPOS(k,l,t)..
GA(k,l,t)$(GA(k,l,t).l GE GT(k,l).l) =E= 0 ;
然后出现下一个错误(仅在.l定义中)
*** C:\ route \ Filename.gms
中的错误8')'预期
拜托,有人可以帮忙吗?
提前致谢!!
答案 0 :(得分:0)
我已经看到我之前的代码不正确,正确的方法是:
ACUMULADO_FIN_GRUPOS(k,l,t)..
GA(k,l,t)$(GA.l(k,l,t) GE GT.l(k,l)) =E= 0 ;
前面有.l
设置定义。