【发布时间】:2017-07-18 13:04:00
【问题描述】:
plan 是数据中的矩阵。
for i = 1:5
for j = 1:3
for k = 1:plan(j,i)
C(i,j,k) = SUB(j,i);
end
end
end
如何在GAMS 中建模相同。请帮忙。
【问题讨论】:
标签: gams-math
plan 是数据中的矩阵。
for i = 1:5
for j = 1:3
for k = 1:plan(j,i)
C(i,j,k) = SUB(j,i);
end
end
end
如何在GAMS 中建模相同。请帮忙。
【问题讨论】:
标签: gams-math
循环经常被不熟悉 GAMS 的用户过度使用。在 GAMS 中显式循环是个例外:通常我们希望使用隐式循环。喜欢:
c(i,j,k)$(ord(k)<=plan(j,i)) = sub(j,i);
【讨论】:
首先,您必须将最终输出 C 视为具有给定维度的矩阵。也就是说,必须事先确定第三维 k 的大小。可能是所有 plan(j,i) 值的最大值。因此,我将索引 k 的最大值称为大写 K。在这种情况下,您可以这样做:
SET i /1*5/;
SET j /1*3/;
SET k /1*K/;
Loop (i,
Loop (j,
Loop (k,
If (ord(k) <= plan(j,i), C(i,j,k) = SUB(j,i););
);
);
);
【讨论】: