Docplex:构建表达式以从数组获取值

问题描述

我有一个定义如下的数组

A = [
[10,20],[20,10]
]

现在,我想在位置(i,j)上获得条目。事实是,j是一个CpoFunctionCall对象(其中我将是一个Int),因此无法编制索引。是否可以将第(i,j)个元素作为docplex中的CpoExpression获得操作,或者有其他巧妙的方法解决此问题?

解决方法

所以我解决这个问题的方法是将A [i]转换为一个表达式,然后将函数调用转换为布尔数组的表达式,然后取内积。

POSITION = [0,1]
b = build_cpo_expr(A[i])
c = list(map(lambda x: x==j,POSITION))
distance = scal_prod(c,b)