Page 1 of 1

Indexing a Set with multiple values

Posted: Thu May 23, 2019 9:22 am
by pelorn
Hi there,

I'm trying some alteration to the DICE2013 model. I define a set of a hundred values and want to access one value for each period t. I.e. if t=5, I want GAMS to return the fifth value in the parameter cereq.

sets t Time periods (5 years per period) / 1*100 /
cereq list of multipliers /v1*v100/

I tried:

cereq(t)$ord((cereq)=t)

but that causes the program to crash.

How do I have to do this?

Many thanks

Re: Indexing a Set with multiple values

Posted: Thu May 23, 2019 9:56 am
by mkbonde
You can compare the positions of the two elements in their respective sets by writing

Code: Select all

$(ord(cereq)=ord(t))
or compare the position of cereq with the value of t:

Code: Select all

$(ord(cereq)=t.val)
Using .val is useful when comparing numerical sets that don't naturally start at 1, for example years.

Re: Indexing a Set with multiple values

Posted: Sun Jun 02, 2019 3:47 pm
by pelorn
Thank you!