csv - 如何将 csv 文件导入 cplex
问题描述
我有一个 CSV 文件,其中包含从节点i
到节点的距离以及节点j
的权重。此文件要测试尝试解决 p 中值问题的 CPLEX 代码。我是新的 CPLEX 用户,我不知道如何从 CSV 文件中获取距离和权重。我尝试使用 Excel 文件中的数据测试此代码,并得到了答案。但是,因为我想要使用大型数据集,所以需要导入 CSV 文件而不是 Excel 工作表。你能帮我知道我应该如何阅读我的d
专栏和w
专栏吗?下面我带来了 CSV 文件的代码和图像
int w[demands]=...;
float d[demands][facilities]=...;
}[CSV file][1]
解决方案
为了从任何基于文本的文件格式读取数据,您可以使用脚本和IloOplInputFile。这允许您逐行读取文件。然后,您可以拆分 CSV 分隔符上的行并提取必填字段。
您可以在此处的 CPLEX 论坛上找到一个示例:假设您有这个文件demand.csv
(第一个字段给出第一个索引,第二个字段给出第二个索引,第三个字段给出值)
1;1;5
1;2;10
1;3;15
2;1;20
2;2;25
2;3;30
此代码初始化d
数组:
range demands = 1..2;
range facilities = 1..3;
float d[demands][facilities];
execute {
var f = new IloOplInputFile("demand.csv");
while (!f.eof) {
var data = f.readline().split(";");
if (data.length == 3) // Beware of empty lines
d[Opl.intValue(data[0])][Opl.intValue(data[1])] = Opl.floatValue(data[2]);
}
writeln(d);
}
对于d
数组也是如此。
推荐阅读
- c++ - 通过类构造函数了解何时在 () 和 {} 初始化中发生检查
- azure - azure ml 管道创建中面临的问题
- c - 如何在c中拆分字符串
- javascript - 使用 JS 槽 HTML 显示 Json
- wordpress - 覆盖 WooCommerce 过滤器中最低和最高价格的标准请求处理,以从自定义字段按价格获取产品
- java - 我的 Java 客户端没有读取整个 Socket 响应
- sapui5 - sapUI5 应用程序中的 Cloudinary SDK
- vb.net - How to Automatically Select a ListBox Item Based on the Current Month (VB.NET)
- c - 链接 .o 对象时,Makfile 会同时生成 `(.text+0x0): multiple definition` 和 `(.text+0x44): undefined reference to` 错误
- javascript - 无法在实时服务器上运行 Reactjs 代码