8.7.17. MLinExpr¶
- class MLinExpr¶
代表由多个LinExpr组成的多维数组。 一般通过变量和其他类型对象由算数运算产生。 例如:
# 多维数组变量加一个常数 mvar + 1 var * numpy.ones((1, 1))
属性
ndim
获取MLinExpr的维度个数
shape
获取MLinExpr的shape
size
获取MLinExpr包含的表达式个数
方法
zeros()
返回一个指定shape的MLinExpr,它包含的所有表达式都是空表达式
对所有包含的线性表达式,执行clear操作,即所有包含的线性表达式都将变成空表达式
返回MLinExpr的一个拷贝
在问题求解以后,返回所有线性表达式的值
获取当前MLinExpr唯一包含的表达式
将包含的所有表达式求和,返回求和后的表达式
- static zeros(shape)
返回一个指定shape的MLinExpr,它包含的所有表达式都是空表达式
- Parameters:
shape – 需要指定的shape
example:
mLinExpr = MLinExpr.zeros((2, 2)) mLinExpr += x print(mLinExpr[0, 0].item().size() == 1)
- clear()¶
对所有包含的线性表达式,执行clear操作,即所有包含的线性表达式都将变成空表达式
example:
mLinExpr.clear() print(mLinExpr[0, 0].item().size() == 0)
- copy()¶
返回MLinExpr的一个拷贝
example:
another = mLinExpr.copy()
- getValue()¶
在问题求解以后,返回所有线性表达式的值
example:
m.optimize() print(mLinExpr.getValue()[0, 0])
- item()¶
获取当前MLinExpr唯一包含的表达式
example:
mat = m.addMVar((2, 2)) mLinExpr = mat + 1 first = mLinExpr[0, 0] print(type(first)) print(type(first.item()))
Note
如果当前MLinExpr包含不止一个表达式将抛出异常
- sum(axis=None)¶
将包含的所有表达式求和,返回求和后的表达式
- Parameters:
axis=None – 求和的沿轴
example:
mat = m.addMVar((2, 2)) mLinExpr = mat + 1 print(mLinExpr.sum().getConstant() == 4)