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
. 请帮忙。
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 的用户经常过度使用循环。在 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););
);
);
);