我想请求您协助我处理一周左右的问题。我一直在寻找解决方案。官方文件不够准确,在此事上没有说什么。
问题如下: 这是我的CSV文件" food.csv"的一部分。在这里,我只复制了6列,只是为了占据一小部分数据。
Name Index A E K C
Rice 1 0 0 0 0
Lentils 2 0.39 5 0.05 44
Carrot 3 167.05 7 132 59
Potato 4 0.03 0 21 74
Apple 5 0.38 1 6 0.04
我使用table
语句将其导入GNU MathProg线性程序。问题是,对于每一列,我都被迫使用分离的参数。我更愿意将列索引为单个二维参数,以便我可以轻松地迭代它们。
set fields;
param kc{i in 1..card(fields)}, symbolic; # symbolic only for the example, normally it's numeric
table data IN "CSV" "food.csv": fields <- [Index], kc~Kcal;
问题是这样我必须为每一列使用单独的参数,如果我有40个列和每个列的两个约束,它在分隔的行中给出大约80个约束,如果我想要改变某些东西,我需要更改80行代码,因为我不能迭代列并简化它。
这里我把从CSV文件解析的内容。
Display statement at line 213
kc[1] = '1.12'
kc[2] = '3.53'
kc[3] = '0.41'
kc[4] = '0.86'
kc[5] = '0.48'
kc[6] = '3.89'
kc[7] = '0.36'
kc[8] = '1.89'
kc[9] = '8.84'
kc[10] = '0.72'
kc[11] = '1.2'
kc[12] = '2.95'
kc[13] = '6.54'
kc[14] = '5.41'
kc[15] = '0.81'
kc[16] = '1.49'
kc[17] = '0.4'
更令人感到兴趣的是:
kc[1][1] # first entry, first column
kc[1][2] # first entry, second column
kc[2][5] # second entry entry, fifth column
有没有人知道如何实现这个目标?
答案 0 :(得分:0)
您的输入数据(即food.csv)与您解析的输出数据不匹配。
请发布正确的数据(即输入数据和期望输出数据),以便我们为您提供帮助。
很容易解决您的问题。您可以在../examples/csv文件夹(运输模型)中的GLPK / MathProg分发文件中看到CSV数据的示例。它使用csv作为输入和输出。
这是语法示例(如下所示)。
设置I; / *罐头植物* /设置J; / *市场* /
设定K维2; / *运输车道* /
param d {i in I,j in J}; / *距离在数千英里* /
table tab_distance IN“CSV”“distance.csv”: K < - [植物,市场],d~距离;