Python 在使用model.getVars()之后,如何将变量提取为单个数组?

Python 在使用model.getVars()之后,如何将变量提取为单个数组?,python,gurobi,Python,Gurobi,这很可能是一个特定于Python的问题,但我在使用Python处理gurobi中的变量以绘制输出时遇到了问题 我有一组变量,我希望能够将它们提取到单个数组中,这样我就可以将它们与一个常见的每小时数组进行比较 在使用model.getVars()之后,如何以数组格式提取单个变量?当创建变量时,将其存储在列表、字典或元组中,您可以轻松使用这些对象访问特定变量的X属性() 例如: ... myVar = m.addVar(vtype=GRB.BINARY, name="myVar") ... m.op

这很可能是一个特定于Python的问题,但我在使用Python处理
gurobi
中的变量以绘制输出时遇到了问题

我有一组变量,我希望能够将它们提取到单个数组中,这样我就可以将它们与一个常见的每小时数组进行比较


在使用
model.getVars()
之后,如何以数组格式提取单个变量?

当创建变量时,将其存储在列表、字典或元组中,您可以轻松使用这些对象访问特定变量的X属性()

例如:

...
myVar = m.addVar(vtype=GRB.BINARY, name="myVar")
...
m.optimize()
if m.status == GRB.Status.OPTIMAL:
    print('%s %g' % (myVar.varName, myVar.x))
请注意,您应该在查询解决方案之前检查优化的状态

以下是一个完整的示例:

非常感谢您的帮助。我感兴趣的不仅仅是将其打印到屏幕上,而是将结果存储在单个数组中,以便使用matplotlib绘制结果。我现在正在努力寻找一些示例代码。这是我脑海中的一般想法a[:,1]=myVar.x[:,1]然而,我知道这不是正确的代码-但也许这更好地解释了我所追求的…这是我正在使用的代码-
model.optimize()status=model.status if status==GRB.status.optimize:sol_p=model.getAttr('x',p)sol_v=model.getAttr('x',v)打印('优化状态为%d'%status')打印('最佳目标为%g'%model.objVal)
我希望sol_p和sol_v变量是5个列变量,行长正确-但事实并非如此-它返回的是一个包含所有变量数据的元组。您可以发布如何创建变量p和v吗?