ایجاد فایل GDX و نوشتن داده روی آن توسط دستور put

ايجاد فايل GDX و نوشتن داده روي آن راه هاي متفاوتي دارد، يک از اين راه ها استفاده از دستور put است. کد زير را در نظر بگيريد:

[css]
Set j / j01*j03 /;
alias(i,j);

parameter a(i,j);
a(i,j) = uniform(10,30);
table b(i,j)
j01 j02 j03
j01 4 0 2
j02 1 3 4
j03 9 0 9
;

File testgdx;
put_utility testgdx ‘gdxout’ / ‘data’ ‘.gdx’;

execute_unload a,b;
[/css]

در کد فوق ما ابتدا يک مجموعه و دو پارامتر a,b را تعريف کرده ايم،
سپس توسط دستور file يک فايل به نام testgdx تعريف نموده ايم. در مرحله ي بعد توسط دستور put_utility يک فايل gdx تعريف کرده ايم که نام آن data.gdx مي باشد. در نهايت هم مقادير a,b را در فايل gdx توليد شده قرار داده ايم.
دقت کنيد که توسط دستور put_utility ما مي توانيم فايل ها را تغيير نام داده، فايل هاي جديد توليد کنيم، فايل هايي که از قبل ذخيره شده اند را با تغيير نام دستکاري کنيم، و يا توسط آن فايلهايي مانند gdx را توليد کنيم. در اينجا توسط دستور gdxout به گمز فهمانده ايم که يک فايل gdx توليد کند و با عبارت بعد از اسلش (/) يک فايل با نام data که فرمت آن gdx هست را ذخيره کرده ايم.
دقت بفرماييد که تا اين مرحله از کار يک فايل data.gdx که خالي است توليد کرده ايم. در ادامه توسط execute_unload دو پارامتر a,b را روي آن نوشته ايم.
در نهايت خروجي به شکل زير خواهد بود.
gdx
حال مي توان تصور کرد که توسط put_utility و ترکيب آن با دستور Loop يا هر حلقه ي ديگري، فايل هاي متفاوت با فرمت ها و کاربردهاي متفاوت را توليد کرد. در صورتي که در استفاده از اين دستور حرفه اي شويد، مي توانيد با سرعت بيشتري فايلهاي مورد نياز خود را توليد و جهت گزارش دهي بازنويسي کنيد.

به عنوان يک کاربرد ديگر از اين دستور مي توان به قابليت فراخواني داده ها از gdx اشاره کرد. در کد زير ما داده هاي a,b که قبلا ذخيره کرده ايم را توسط دستور put_utility فراخواني کرده ايم. اين فراخواني بسيار سريع بوده و مي تواند براي علاقمندان مفيد باشد.

[css]
put_utility ‘gdxin’ / ‘data’ ‘.gdx’ ;
execute_load a,b;
display a,b;
[/css]

 

این مقاله برای شما مفید بود؟

مطالب مشابه

2 دیدگاه

  1. Bahare M

    با سلام
    امکانش هست در مورد لینک کردن بین C++ و GAMS بفرمایین؟

    1. محمودی

      سلام
      متاسفانه من c++ کار نکردم. ولی به طور کلی ارتباط گمز با سایر نرم افزارها از طریق gdx، اکسل و یا فرمت های متنی امکان پذیر هست. شما با جستجوی intefracing between gams and c++ در گوگل می تونید به جواب برسید.

دیدگاهی دارید؟