颍川raining 颍川raining
关注数: 4 粉丝数: 15 发帖数: 147 关注贴吧数: 10
GAMS>>GDX>>Excel导出的一个例子(含多维数组的导出) Sets i canning plants / Seattle, San-Diego / j markets / New-York, Chicago, Detroit / p Property /attribute1,attribute2, attribute3/; Parameters a(i) capacity of plant i in cases / Seattle 350 San-Diego 600 / b(j) demand at market j in cases / New-York 325 Chicago 300 Detroit 275 / ; table u(i,j,p) attribute1 attribute2 attribute3 seattle.new-york 3 4 5 San-Diego.new-york 6 7 8 seattle.Chicago 9 10 11 San-Diego.Chicago 12 13 14 seattle.Detroit 15 16 17 San-Diego.Detroit 18 19 20 ; Table d(i,j) distance in thousands of miles New-York Chicago Detroit Seattle 2.5 1.7 1.8 San-Diego 2.5 1.8 1.4; scalar f freight in dollars per case per thousand miles/90/; Parameter c(i,j) transport cost in 1000s of dollars per case; c(i,j)= f*d(i,j)/1000; Variables x(i,j) shipment quantities in cases z total transportation costs in 1000s of dollars; Positive variables x; Equations cost define objective function supply(i) observe supply limit at plant i demand(j) satisfy demand at market j; cost..z=e= sum((i,j),c(i,j)*x(i,j)); supply(i).. sum(j,x(i,j))=l= a(i); demand(j)..sum(i,x(i,j))=g=b(j); model transport/all/; solve transport using lp minimizing z; display x.l, x.m; Execute_unload 'transport.gdx',c,x,z,u; execute 'gdxxrw transport.gdx o= transport.xlsx par=c rng= AA!a1:d3 rdim=1 cdim=1'; execute 'gdxxrw transport.gdx o=transport.xlsx var=x rng= AA!a5:d7' ; *execute 'gdxxrw transport.gdx o=transport.xlsx var=z rng= sheet1!e9' clear; execute 'gdxxrw.exe transport.gdx var=z rng= AA!e9 clear'; *下面两句代码解释了rdim&cdim的确切用法 execute 'gdxxrw.exe transport.gdx par=u rng= AA!a10 rdim=1 cdim=2'; execute 'gdxxrw.exe transport.gdx par=u rng= AA!a14 rdim=2 cdim=1';
1 下一页