xcxd.net
当前位置:首页 >> lingo导入ExCEl矩阵 >>

lingo导入ExCEl矩阵

想把一个1000行,100列的数据(路径为D:\C.xslx)导入lingo中,并将其定义为aij的形式.目标函数是每一行的累加和最小,约束条件是每一列的累加和求各位大神用lingo语言编一下.谢谢,急用!

可以用@ole导入 具体自己看教程 或者你不用@ole 直接把数据从excel里面复制出来放到data段也行

教你个导入方法:model:sets:var1/1..6/;var2/1..4/;link(var1,var2):q,w;endsetsdata:q=1 2 1 7 3 6 1 6 8 0 1 8 7 0 5 4 9 3 9 10 10 7 8 9;w=80 90 90 85 88 88 88 80 86 75 89 89 89 82 81 87 81 75 83 88 82 82 90 90;enddataend

下面我以一个实例来教大家如何调用,比如要调用下面这个excel表格.首先打开lingo.lingo调用excel表格需要用到一个专用的函数@ole,改函数的调用模式是:name=@ole('路径','name'),其中的路径是调用的文件的存储的地址,这个

比如导数一个矩阵,把矩阵赋值给data1,则先把excel中的数据选中,选择“插入|名称|定义”,然后输入定义名称data1,然后把excel保存为shuju.xls,保存在D盘.在lingo界面输入data1=@OLE('D:\shuju.xls',data1);就可以了

变量名=@OLE('文件名','数据块名')

excel里面定义区域 然后用@ole函数就可以 大部分教程都有详细介绍

当然能 这个在lingo里面相当于一个派生集 最好能找个教程看一下比如sets:s1/1..10/;s2/1..12/;link(s1,s2):a;endsets这里面link就是一个10*12的集 a就是其中的一个变量 可以在data段里面给a赋值

用@ole函数 a=@ole(\'路径\', 区域);区域本身在excel里面先定义好

Lingo不像matlab处理矩阵的,所以那些小数据还是直接复制上去好.如果要导入就:把数据放到 excel 中然后用@ole读出来,用法x=@OLE('D:/cost.xls',f) 基中前面的x是你想要得到值的表达式,后面'D:/cost.xls'是你要读的数据所在的文件,f比较难理解,它是你在要读的文件中做的标记,在你要读的文件中主要是EXECEL中选中要读的数据选中后释放鼠标按钮,选择“插入|名称|定义”,输入f,输入的f一定要和程序中'D:/cost.xls'后面的f一样,不然它就认不出来了.

网站首页 | 网站地图
All rights reserved Powered by www.xcxd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com