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()

对所有包含的线性表达式,执行clear操作,即所有包含的线性表达式都将变成空表达式

copy()

返回MLinExpr的一个拷贝

getValue()

在问题求解以后,返回所有线性表达式的值

item()

获取当前MLinExpr唯一包含的表达式

sum()

将包含的所有表达式求和,返回求和后的表达式

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)