Gams是一款通用建模软件,能够高效的解决数学规划和优化问题。Matlab是一个集数值计算、符号分析、图像显示和文字处理于一体的大型集成化软件。在实际使用过程中会涉及到两个软件通讯的操作,下面介绍如何实现Gams与Matlab的数据交互。
这两个软件之间通过gdx文件进行数据交互(xxx.gdx),具体实现过程为Matlab软件将数据写入gdx文件,gams通过读取gdx文件得到数据,反之亦然。下面从gams生成指定gdx文件、gams向gdx文件中写入数据、gams读取gdx文件中的数据、Matlab向gdx文件中写入数据、Matlab读取gdx文件中的数据、Matlab调用gams进行运算 五部分进行介绍。
1 . gams生成指定gdx文件
在gams脚本文件首行及末尾编写如下代码
$set matout "'matsol.gdx'"
*
*
*
execute_unload %matout%;
运行该文件后便会在脚本文件所在文件夹中生成"matsol.gdx"文件。
2 . gams向gdx文件中写入数据
首先确定数据变量名,之后在脚本文件首行添加变量名即可
$set matout "'matsol.gdx', Qu, Qc, yij, ycu, yhu, Tiin, Chu"
*Qu, Qc, yij, ycu, yhu, Tiin, Chu为所需输出变量名
注意!这里可以规定gams的计算结果,也可以规定gams中的输入值。理论上可以输出gams当中全部参数数据。
运行文件后"matsol.gdx"中便会存在全部变量,双击gdx文件可以在gams中查看。
下面介绍Matlab对gams调用进行计算以及与gdx文件数据交互的方法。