GAMS学习笔记02——GAMS读取Excel的数据
初学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的数据相关推荐
- Python学习笔记(二)Excel保存数据
由于之前对Python有一些了解,因此这个学习笔记并不是学习顺序,而是工作中需要用到的技术的记录. 工作中需要记录一大组数据,因此需要将其保存起来,我就想到了比较常见的excel. 保存到excel的 ...
- jquery学习笔记——getJSON无法读取本地json数据的问题
今天在改网页的时候,需要调取本地json文件进行测试 一开始用的是<script type='text/javascript' src='test.json'></script> ...
- TensorFlow学习笔记02:使用tf.data读取和保存数据文件
TensorFlow学习笔记02:使用tf.data读取和保存数据文件 使用`tf.data`读取和写入数据文件 读取和写入csv文件 写入csv文件 读取csv文件 读取和保存TFRecord文件 ...
- XML学习笔记02【xml_解析】
Java后端 学习路线 笔记汇总表[黑马程序员] XML学习笔记01[xml_基础.xml_约束][day01] XML学习笔记02[xml_解析][day01] 目录 03 xml_解析 xml_解 ...
- JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- openCVPracticalExercise学习笔记02
原创:openCVPracticalExercise学习笔记02 10使用Hu矩进行形状匹配 Hu矩(或者更确切地说是Hu矩不变量)是使用对图像变换不变的中心矩计算的一组7个变量.事实证明,前6个矩不 ...
- 2021年3月8日:MyBatis框架学习笔记02:利用MyBatis实现CRUD操作
MyBatis框架学习笔记02:利用MyBatis实现CRUD操作 在第一节课中我们在UserMapper.xml里定义了两个查询语句:findById和findAll,对应的在UserMapper接 ...
- GDAL学习笔记02:GDAL基础知识
你的习惯决定了你会成为什么样的人. GDAL学习笔记02:GDAL基础知识 前言 1. 版本 2. 摘要 3. 说明 4. 微信公众号GISRSGeography 一.GDAL简介 二.导入GDAL ...
- python学习笔记02
python学习笔记02 面向对象Object Oriented 概述 类和对象 封装 继承 多态 类与类的关系 设计原则 总结 python学习笔记03 面向对象Object Oriented 概述 ...
最新文章
- 迈入幸福婚姻殿堂的星座女
- 深入Java调试体系之JDWP协议及实现
- OpenCV注视估计Gaze Estimation的实例(附完整代码)
- Spring框架–应用程序上下文–到达应用程序上下文的三种方法
- 《Head First设计模式》第六章笔记-命令模式
- 【译文】用Spring Cloud和Docker搭建微服务平台
- php读取文件部分内容,PHP 提高篇
- Linux基础,命令的使用以及环境的安装,jdk,mysql,tomcat
- WEEX|简单界面的实现与页面跳转
- Centos7查看硬盘容量
- FIFO的发送条件总结
- 为什么很多人工资不高,却还是要拥挤在大城市生活?
- 仙人掌相关问题的处理方法(未完待续)
- _SaveLog.dpr立即备份晓亮的电脑操作记录热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报...
- MATLAB导入txt和excel文件技巧汇总
- maven项目的Archetype常用选择
- 坚果云企业版服务器端,企业网盘服务器功能
- 计算机vb知识点,计算机高职专业VB知识要点003 VB基础知识,案例:逐行输出
- pads9.5转AD09
- java获取ip地址以及获取浏览器信息工具
热门文章
- 德语c2大语言证书的作用,说说德语语言水平级别A1,A2,B1,B2,C1,C2是啥级别
- Debian11连不上网络问题
- 前端笔记-vue cli中使用echarts画江苏省地图
- x3550m5 问题确定与维护指南_IBM System x 系列服务器用户手册(中文版)汇总(最新) -...
- 云计算:程序员重回个人英雄时代,国内云计算平台即将搭建运行。
- 高盛发布区块链报告:从理论到实践(中文版)六
- Error:output with shape [1, 224, 224] doesn‘t match the broadcast shape [3, 224, 224]
- 【Python】基础入门学习-B站莫烦老师
- 10行代码实现RSA公钥解密
- http web服务器java_基于HTTP的Web服务器编程