我愿意在我的LP项目中使用3D参数。但是,我不能以正确的方式读取参数的数据。是否可以使用Excel或将参数值以矩阵形式写入.dat文件中来获取数据?此外,其他潜在的解决方案也可能有所帮助。
float rt[B][P][Z]=...; //Response time of boat type b at port p to zone z发布于 2019-02-27 19:21:30
嗯,三维数组是所有3个数字的组合,而excel是一个二维表格格式,所以在你开始写东西的时候,你不能直接从excel中读取三维数组。3dim是否意味着你确实需要所有的组合,或者一些组合。如果是后者,那么如果某些组合存在B/P/Z,那么您可以对三元组使用元组格式...元组类型的声明类似于
tuple BPZ {int B;
float P;
float Z};然后使用此类型声明数据,如下所示
{BPZ} myData = ...;然后在excel中,你有一个包含所有三元组的表。
如果第一个(所有的组合都有数据),那么另一种方法是使每个PZ 2维数组/表/矩阵在excel中B次...这很繁琐,但如果你不手动创建数据,而是以编程方式创建数据,这是可行的。在Python中,你可以使用openpyxl (https://openpyxl.readthedocs.io/en/stable/ -我用过它,它非常好/简单),然后使用DOOPL将OPL/Python组合在一起(https://developer.ibm.com/docloud/blog/2018/09/26/opl-and-python/ + https://pypi.org/project/doopl/)。你可以在任何情况下使用三元组/元组,当所有组合都存在时,但它可能值很大,所以它取决于你想要的B_P_Z的大小……
https://stackoverflow.com/questions/53916329
复制相似问题