初学GAMS,记录一下GAMS从Excel中读取数据的过程,有很多细节需要尝试才能发现问题,希望以通俗的文字记录一下我遇到的问题。

基本概念

GAMS从Excel中提取数据的基本逻辑是通过Gdxxrw的内置命令,将.xlxs文件转换成.gdx文件,再用GAMS读取.gdx文件,根据所设定的参数名和提取区域获得所需数据。

一维&二维矩阵读取步骤

假设我需要读取三个参数line,ebus和Pload,各自的索引集合定义如下:

setsi 电网节点 /1*24/eline 电网支路 /1*25/line_index /from,to,x/t /1*24/ebus_index /if_tra,if_gfu1,if_gfu2,if_ptg,ra_pload/z Pload /PL/;

在导入数据前先定义参数:

Parametersline(eline,line_index),ebus(i,ebus_index),Pload(t,z);

注意GAMS中定义最后要加分号!

接着进行读取,这里data文件地址需要写完整,路径里面不要中文,否则无法识别。

$call gdxxrw ..\data.xlsx output=..\data.gdx par=line rng=sheet1!A1:D26  Rdim=1 Cdim=1 par=ebus rng=sheet1!F1:K25 par=Pload rng=sheet1!A28:B52
$gdxin ..\data.gdx
$load line ebus Pload
$gdxin

代码解释:

  • gdxxrw :GAMS内置的命令,用来读写数据;
  • data.xlsx output= data.gdx:表示将你的xlsx文件先转成gdx文件;
  • par=line rng=A1:D26 :对象是参数line,元素范围是Excel中的A1:D24;
  • rdim=1 cdim=1:rdim规定了某一行是索引,cdim规定了某一列是索引。这里我们存储的excel是有行列表头的(如下图),所以都规定为1。因此在上面规定读取元素范围的时候需要把表头也包括进去,行数要往前一行。
  • $ gdxin data.gdx:$gdxin + 文件名表示指定要读取的gdx文件;
  • $load line ebus Pload:从gdx文件中读取所需的参数;
  • $gdxin:后面没有文件名,表示关闭当前gdx文件

 注意:由于本程序的索引使用了字符集合(例如line的索引有from to x),经过实验,excel表的表头也必须和索引完全一致否则无法成功读取。

最后,成功运行完之后,生成的.dgx文件可以通过gams打开,出现以下表格。同时右侧可以看到表格形式的所读取数据。Entry表示读取的顺序,Dim表示维数,Nr Elem表示元素的行数。

基本上到这里我就成功读取了所需要的数据。

GAMS学习笔记02——GAMS读取Excel的数据相关推荐

  1. Python学习笔记(二)Excel保存数据

    由于之前对Python有一些了解,因此这个学习笔记并不是学习顺序,而是工作中需要用到的技术的记录. 工作中需要记录一大组数据,因此需要将其保存起来,我就想到了比较常见的excel. 保存到excel的 ...

  2. jquery学习笔记——getJSON无法读取本地json数据的问题

    今天在改网页的时候,需要调取本地json文件进行测试 一开始用的是<script type='text/javascript' src='test.json'></script> ...

  3. TensorFlow学习笔记02:使用tf.data读取和保存数据文件

    TensorFlow学习笔记02:使用tf.data读取和保存数据文件 使用`tf.data`读取和写入数据文件 读取和写入csv文件 写入csv文件 读取csv文件 读取和保存TFRecord文件 ...

  4. XML学习笔记02【xml_解析】

    Java后端 学习路线 笔记汇总表[黑马程序员] XML学习笔记01[xml_基础.xml_约束][day01] XML学习笔记02[xml_解析][day01] 目录 03 xml_解析 xml_解 ...

  5. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  6. openCVPracticalExercise学习笔记02

    原创:openCVPracticalExercise学习笔记02 10使用Hu矩进行形状匹配 Hu矩(或者更确切地说是Hu矩不变量)是使用对图像变换不变的中心矩计算的一组7个变量.事实证明,前6个矩不 ...

  7. 2021年3月8日:MyBatis框架学习笔记02:利用MyBatis实现CRUD操作

    MyBatis框架学习笔记02:利用MyBatis实现CRUD操作 在第一节课中我们在UserMapper.xml里定义了两个查询语句:findById和findAll,对应的在UserMapper接 ...

  8. GDAL学习笔记02:GDAL基础知识

    你的习惯决定了你会成为什么样的人. GDAL学习笔记02:GDAL基础知识 前言 1. 版本 2. 摘要 3. 说明 4. 微信公众号GISRSGeography 一.GDAL简介 二.导入GDAL ...

  9. python学习笔记02

    python学习笔记02 面向对象Object Oriented 概述 类和对象 封装 继承 多态 类与类的关系 设计原则 总结 python学习笔记03 面向对象Object Oriented 概述 ...

最新文章

  1. 迈入幸福婚姻殿堂的星座女
  2. 深入Java调试体系之JDWP协议及实现
  3. OpenCV注视估计Gaze Estimation的实例(附完整代码)
  4. Spring框架–应用程序上下文–到达应用程序上下文的三种方法
  5. 《Head First设计模式》第六章笔记-命令模式
  6. 【译文】用Spring Cloud和Docker搭建微服务平台
  7. php读取文件部分内容,PHP 提高篇
  8. Linux基础,命令的使用以及环境的安装,jdk,mysql,tomcat
  9. WEEX|简单界面的实现与页面跳转
  10. Centos7查看硬盘容量
  11. FIFO的发送条件总结
  12. 为什么很多人工资不高,却还是要拥挤在大城市生活?
  13. 仙人掌相关问题的处理方法(未完待续)
  14. _SaveLog.dpr立即备份晓亮的电脑操作记录热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报...
  15. MATLAB导入txt和excel文件技巧汇总
  16. maven项目的Archetype常用选择
  17. 坚果云企业版服务器端,企业网盘服务器功能
  18. 计算机vb知识点,计算机高职专业VB知识要点003 VB基础知识,案例:逐行输出
  19. pads9.5转AD09
  20. java获取ip地址以及获取浏览器信息工具

热门文章

  1. 德语c2大语言证书的作用,说说德语语言水平级别A1,A2,B1,B2,C1,C2是啥级别
  2. Debian11连不上网络问题
  3. 前端笔记-vue cli中使用echarts画江苏省地图
  4. x3550m5 问题确定与维护指南_IBM System x 系列服务器用户手册(中文版)汇总(最新) -...
  5. 云计算:程序员重回个人英雄时代,国内云计算平台即将搭建运行。
  6. 高盛发布区块链报告:从理论到实践(中文版)六
  7. Error:output with shape [1, 224, 224] doesn‘t match the broadcast shape [3, 224, 224]
  8. 【Python】基础入门学习-B站莫烦老师
  9. 10行代码实现RSA公钥解密
  10. http web服务器java_基于HTTP的Web服务器编程