Matlab:cvx凸规划误差

Matlab:cvx凸规划误差,matlab,optimization,convex,cvx,Matlab,Optimization,Convex,Cvx,我是cvx新手,在解决以下凸问题时出错: 在上述公式中,L=| E |,'p'和'm'为正实指数。这是我的密码: cvx_begin variable x(L,L); maximize(sum(sum(m(1:L,1:L).*(1-x(1:L,1:L))+(p(1:L,1:L).*x(1:L,1:L))))) subject to for j=1:L x(j,j)==1; sum(x(j,:))<=C; end

我是cvx新手,在解决以下凸问题时出错:

在上述公式中,L=| E |,'p'和'm'为正实指数。这是我的密码:

cvx_begin
    variable x(L,L);
    maximize(sum(sum(m(1:L,1:L).*(1-x(1:L,1:L))+(p(1:L,1:L).*x(1:L,1:L)))))
    subject to
    for j=1:L
        x(j,j)==1;
        sum(x(j,:))<=C;
    end
    for i=1:L
        for j=1:L
         0<=x(i,j)<=1;
        end
    end
cvx_end

但是,我不知道如何修复它

我只是试了一下,没有出错。你有什么版本的CVX?@user1877862它是在matlab R2014a上运行的3.0beta版。我应该注意到,‘p’和‘m’的一些值可能是零(或正)。它是否有缺陷?0或正值都可以。是否有任何值
Inf
NaN
?这可能会导致您看到的错误。是的,存在“Inf”值。除此之外,代码现在正在运行。感谢you@user1877862我需要添加另一个约束,即
x_I,j+x_j,k-x_I,k≤ 1.∀i、 j,k∈E:k>i,j≠i、 k
,我使用三个
for
循环和两个
if
来包括
~=
,但这使得
x
值在问题解决后为负值(cvx忽略我的第二个约束)。我如何以正确的形式完成这项工作?
Error using  +  (line 29)
Disciplined convex programming error:
Invalid operations:
    {invalid} + {0}
    {0} + {invalid}