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
中对其进行建模。请帮忙。
答案 0 :(得分:1)
不熟悉GAMS的用户经常会过度使用循环。在GAMS中,显式循环是例外:通常我们想要使用隐式循环。像:
c(i,j,k)$(ord(k)<=plan(j,i)) = sub(j,i);
答案 1 :(得分:-1)
首先,您必须将最终输出C视为具有给定尺寸的矩阵。也就是说,必须事先确定第三维k的大小。可能是所有计划(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););
);
);
);