lingo入门教程之三 --- 文件数据处理
有时候我们想输入的数据是在一个Excel表格或者其他什么形式中,或者说这里数据是实时变化的并不利于直接在程序中输入,耳而应该在程序之外将数据存储,实现数据与程序的分离存储,这个时候就涉及到程序与数据之间的传递
下面简要介绍一个如何进行数据与程序之间的传递
下面的讲解都是基于如下的问题模型
有个城市都需要采购一定量的物品,但每个城市只允许在自身所在的城市采购,城市i的最低需求量为need(i),最大供应量为supply(i),单件采购成本为cost(i),如何采购总成本最小?
模型:设order(i)为城市i的采购量,则问题的数学模型为
1.直接粘贴复制
开始的程序
model:
sets:
cities/!待输入的数据个数;/:cost,need,supply,order;
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost,need,supply=!待输入的数据值;;
enddata
end
直接利用把存储在Excel或者其他什么地方的数据复制粘贴过来,这里需要注意lingo里面的复制是按列进行的(这里在前面已经讲过),不注意的话可能会发生数据赋值的错乱
粘贴的选项
可以依次试一下上面的不同粘贴格式的效果
下面是我直接在Excel中Ctrl+C与Ctrl+V实现的
model:
sets:
cities/
Seattle
Detroit
Chicago
Denver /:cost,need,supply,order;
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost,need,supply=
12 1600 1700
28 1800 1900
15 1200 1300
20 1000 1100 ;
enddata
end
model:
sets:
cities/@file(数据文件.ldt)/:@file(数据文件.ldt);
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost=@file(数据文件.ldt);
need=@file(数据文件.ldt);
supply=@file(数据文件.ldt);
enddata
end
如果路径不一致,也可以手动添加,Edit --> insert new object...
应当注意此时的文件类型的ldt格式,
具体里面内容:Seattle,Detroit,Chicago,Denver~cost,need,supply,order~12,28,15,20~1600,1800,1200,1000~1700,1900,1300,1100 注意中间的不同赋值用~间隔
3.存取Excel数据文件:@ole(文件名,元素名);
model:
sets:
cities/@ole('原始数据1.xls','cities')/:cost,need,supply,order;
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost,need,supply=@ole('原始数据1.xls'); !读取数据文件
@ole('原始数据1.xls','order')=order; !将计算结果存入表格中
enddata
end
对于路径不一致的情况解决方式与上述一样
lingo入门教程之三 --- 文件数据处理相关推荐
- 转载:【opencv入门教程之三】:图片的载入|显示|输出
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...
- 转载:【opencv入门教程之三】:组件结构
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/19925819 作者:毛星 ...
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析
[-] 一开胃菜之一 关于OpenCV的命名空间 二开胃菜之二 关于Mat类型 三图像的载入和显示 imread函数 namedWindow函数 imshow函数 四输出图像到文件imwrite函 ...
- Python入门教程之文件读写操作知识
Python是随着人工智能时代的来临而火爆起来的编程语言,入门简单.功能强大,吸引了人们的广泛学习加入.想要学好Python,一定要从基础学起,然后进阶深入学习,今天千锋小编就给大家分享Python培 ...
- MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据
前两篇教程我们介绍了如何搭建MongoDB的本地环境. 这篇教程我们会介绍如何使用Java代码来连接MongoDB. 如果您是基于Maven进行依赖管理的Java项目,只需要在您的pom.xml里加入 ...
- React.js 官网入门教程 分离文件 操作无法正常显示HelloWord
对着React官网的教程练习操作,在做到分离文件练习时,按照官网步骤来却怎么也无法正常显示HelloWord. 经测试,html文件中内容改为: <!DOCTYPE html> <h ...
- java 根号_没见过的 Java 入门教程之三!例程使用中文标识符代码:各种变量
提醒:编程语言的语法是最机械的.在阅读过程中,请尽量关注于程序做了些什么,而一些语法细节可以暂时忽略.入门之后,在今后的读写代码过程中,语法自然会熟练起来. 如需完整教程文字版,私信联系. 五 变量- ...
- egg.js入门教程视频文件(转载于cnode社区)
记得上篇博客我满怀欣喜的去搞富文本,结果撞的头破血流. 简直是惨不忍睹.后来我也说了,我的那个有比较严重的问题,后期会考虑重构.(第一版已经放弃了) 之后我说我会去看关于后端nodejs koa框架方 ...
- 一部适合有一点点lingo编程基础的人阅读的lingo入门教程——重学lingo,发现很多遗忘的小知识,并将其整理成册——运算符、数学函数、金融函数、概率密度函数、变量定界与集操作函数
一.序言 lingo是一款处理优化问题十分好用的软件. 虽然常常使用,但却许久未曾再系统的学习过,前段时间,重学MATLAB,发现了很多遗忘的知识点,今日,决定重学lingo,将易于遗忘的那些基本的语 ...
- 微信小程序入门教程之三:脚本编程
这个系列教程的前两篇,介绍了小程序的项目结构和页面样式. 今天,接着往下讲,教大家为小程序加入 JavaScript 脚本,做出动态效果,以及如何跟用户互动.学会了脚本,就能做出复杂的页面了. 本篇的 ...
最新文章
- spring security 自定义认证登录
- 深入解析Java编译器学习笔记
- 【趋势】中国移动阅读市场AMC模型+实力矩阵+趋势预测
- 预测未来 盘点大数据分析领域五大趋势
- win10 看计算机配置要求,win10怎么看电脑配置
- 剑指offer——31.栈的压入、弹出序列(想法不错,比剑指的简单)
- 站长吧asp工具设置_网站更换域名需要怎么办?网站更换域名如何设置?
- springBoot入门第一章springBoot第一个程序
- 计算机视觉CV:图像处理面试题
- 搜索引擎提交软件_网站如何被搜索引擎快速收录?
- ABBYY FineReader添加盖章戳记
- vision画流程图的软件_流程图制作软件visio|流程图制作软件visio vs2010 中文版 - 软件下载 - 绿茶软件园|33LC.com...
- 提升睡眠质量:程序猿工作伴侣(睡眠革命)
- 干货!史上最全Java进阶好书清单来了!
- zoc license code
- 如何下载并安装Firebug插件
- 机器学习笔记(机器学习很难么???那必然难啊!!!)
- android vcf iphone6,安卓通讯录导入到iphon最简单的方式(安卓通讯录导入iphon
- 利用游戏软件注入漏洞渗透安卓手机
- 紫光fpga logos2 pango design 开发工具 黑金 axp100开发板资料 带 ddr 以及高速收发器例子
热门文章
- 摄像头(Camera)图像测试(以Imatest为主要工具)V1.0
- 有关mysql触发器的感悟_有关mysql触发器实例分享
- bootice添加黑苹果引导_懒人黑苹果安装教程:CLOVER(四叶草)引导
- NumPy下载与安装
- 你知道手动探针台系统的用途及组成部分吗?
- xp系统怎样添加桌面计算机,如何为XP系统计算机设置桌面
- Centos7 tomcat优化
- Java制作验证码的完整代码
- 接收诊断响应的相关CAPL函数,具有较高的可复用性
- java转换json格式_java中常见的JSON格式转换方法: