Matrix 矩阵直接赋值
我想给GAMS中的三维表格赋值。但它似乎不像在Matlab中那样工作……运气好吗?代码如下,问题出现在最后几行:Matrix 矩阵直接赋值,matrix,variable-assignment,gams-math,Matrix,Variable Assignment,Gams Math,我想给GAMS中的三维表格赋值。但它似乎不像在Matlab中那样工作……运气好吗?代码如下,问题出现在最后几行: Sets n nodes / Sto , Lon , Par , Ber , War , Mad , Rom / i scenarios / 1 * 4 / k capacity le
Sets
n nodes / Sto , Lon , Par , Ber , War , Mad , Rom /
i scenarios / 1 * 4 /
k capacity level / L, N, H / ;
alias(n,m);
Table balance(n,i) traffic balance for different nodes
1 2 3 4
Sto 50 50 -50 -50
Lon -40 40 -40 40
Par 0 0 0 0
Ber 0 0 0 0
War 40 -40 40 -40
Mad 0 0 0 0
Rom -50 -50 50 50 ;
Scalar r fluctuation rate of the capacity level
/0.15/;
Parameter p(k) probability of each level
/ L 0.25
N 0.5
H 0.25 / ;
Table nor_cap(n,m) Normal capacity level from n to m
Sto Lon Par Ber War Mad Rom
Sto 0 11 14 25 30 0 0
Lon 11 0 21 0 0 14 0
Par 14 21 0 22 0 31 19
Ber 25 0 22 0 26 0 18
War 30 0 0 26 0 18 22
Mad 0 14 31 0 18 0 15
Rom 0 0 19 18 22 15 0 ;
Table max_cap(n,m,k) capacity level under each k
max_cap(n,m,'N')=nor_cap(n,m)
max_cap(n,m,'L')=nor_cap(n,m)*(1-r)
max_cap(n,m,'H')=nor_cap(n,m)*(1+r);
三维矩阵的最终赋值应使用参数,而不是表格。总的来说,我还要注意,这个表是非常严格的(二维的,代码内部的文本输入)。您可能需要考虑$GDXIN(或ExcExtEyLoad)和一些用于加载XLS或CSV文件的GAMS实用工具。p> 作为MATLAB和GAMS的用户,我注意到GAMS依赖于每个数组的“索引”,但在其他方面,它们可能非常相似。在您的情况下,max_cap(n,m,k)类似于每个容量级别场景下从_城市到_城市之间的最大容量。矩阵需要声明为参数,该参数可以是任何n维(索引)矩阵,甚至包括标量
另外,如果你真的需要一个快速的答案,请尝试GAMS邮件列表。全球熟练的GAMS用户不可能超过几千,因此在StackOverflow上很难找到快速的答案,因为这对于更常见的语言来说是非常棒的 三维矩阵的最终赋值应使用参数而不是表格。总的来说,我还要注意,这个表是非常严格的(二维的,代码内部的文本输入)。您可能需要考虑$GDXIN(或ExcExtEyLoad)和一些用于加载XLS或CSV文件的GAMS实用工具。p> 作为MATLAB和GAMS的用户,我注意到GAMS依赖于每个数组的“索引”,但在其他方面,它们可能非常相似。在您的情况下,max_cap(n,m,k)类似于每个容量级别场景下从_城市到_城市之间的最大容量。矩阵需要声明为参数,该参数可以是任何n维(索引)矩阵,甚至包括标量 另外,如果你真的需要一个快速的答案,请尝试GAMS邮件列表。全球熟练的GAMS用户不可能超过几千,因此在StackOverflow上很难找到快速的答案,因为这对于更常见的语言来说是非常棒的