Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CVXPY中的外积_Python_Numpy_Cvxpy - Fatal编程技术网

Python CVXPY中的外积

Python CVXPY中的外积,python,numpy,cvxpy,Python,Numpy,Cvxpy,我有一个目标函数,它依赖于外积的和。如果我可以使用Numpy函数,我会这样写: A = np.ones(m, n) U = Variable(m, n) objective = np.trace(sum([np.outer(A[i,:], U[i,:]) for i in range(m)])) 当然,当U是变量时,np.outer不起作用。是否有一个cvxpy仿射函数可以实现这一点?cvxpy有一个kron函数可以工作。由于它仅适用于二维变量和二维数组,因此必须首先将向量重塑为(n,1)向量

我有一个目标函数,它依赖于外积的和。如果我可以使用Numpy函数,我会这样写:

A = np.ones(m, n)
U = Variable(m, n)
objective = np.trace(sum([np.outer(A[i,:], U[i,:]) for i in range(m)]))

当然,当U是变量时,np.outer不起作用。是否有一个cvxpy仿射函数可以实现这一点?

cvxpy有一个kron函数可以工作。由于它仅适用于二维变量和二维数组,因此必须首先将向量重塑为(n,1)向量:

cvx.trace(sum([cvx.kron(A[i, :].reshape(n,1), cvx.reshape(U[i,:], (n,1))
               for i in range(m)]))
另一种解决方案是简单地编写矩阵乘积:

cvx.trace(sum([A[i, :].reshape(n, 1) @ cvx.reshape(U[i,:], (1, n)
               for i in range(m)]))

你能给出一个类似于numpy的外部函数的例子吗?