I would be very grateful if you could answer this question. In the absence of C8 constraints, CVX can run successfully without error. After adding the C8 constraint, no error is reported before the breakpoint debugging reaches “cvx_end”, but an error is reported after running to “cvx_end”. Here is my code: (I don’t know how to express space, “_” means space.)

cvx_begin quiet

variable omega;

variable q(2,1);

variable a(n,n);

variable z(1,n);

variable kappa(n,n);

variable miu(1,n);

variable phi(n,n);

variable rho(1,n);

variable xita(1,n);

expression A(1,n);

expression B(n,n);

expression C(n,n);

for i=1:n

__A(i) = pow_pos(H^2 + pow_pos((norm(q-wI(:,i))),2) - xita(i) + tao * chi(i),2);

end

for i=1:n

__for j=1:n

____ if i~=j

______B(i,j) = log(r(i) * dBE(j) * xita(j) + t(i) * r(j) * dBE(i) * xita(i)); %B(i,j)

____else

______B(i,j) = 0;

____end

__end

end

for i=1:n

__for j=1:n

____if i~=j

_____C(i,j) = -log(r(i) * dBE(j) * xita0(j))-(xita(j)-xita0(j))/xita0(j); %C(i,j)

____else

_____C(i,j) = 0;

____end

__end

end

maximize omega - lamda * sum(sum(phi)) - 1/(2 * tao) * sum(A)

subject to

__kappa >= 0;

__for i=1:n

____xita(i) <= M*(1-r(i)) * Pu * beta/Pc; %C1

____a(i,i) == 0; %C5

____(sigma * t(i) * xita(i)/(Pu * r(i) * beta^2 * dBE(i)^(-1))) + sum(B(i,:)) + sum(C(i,:)) >= log(1/p); %**C8**

____log(1+exp(z0(i)-rho0(i)))/log(2) + exp(z0(i)-rho0(i)) * (z(i)-z0(i)-rho(i)+rho0(i))/((1+exp(z0(i)-rho0(i))) * log(2)) >= omega + log(1+t(i))/log(2); %C9

____pow_pos(xita(i),2)/(gamma * r(i)) <= exp(-z0(i)) * (1-z(i)+z0(i)); %C10

____miu(i) <= xita0(i)^2 + 2 * xita0(i) * (xita(i)-xita0(i)); %C11

____1 + (sum(kappa(i,:)) - kappa(i,i)) <= exp(rho0(i)) * (rho(i)-rho0(i)+1); %C13

__end

__for i=1:n

____for j=1:n

______0 <= a(i,j) <= 1; %C2

______a0(i,j)^2 + 2 * a0(i,j) * (a(i,j)-a0(i,j)) + phi(i,j) >= a(i,j); %C3

______phi(i,j) >= 0; %C4

______if i~=j

_______a(i,j) + a(j,i) == 1; %C6

_______pow_pos(a(i,j)+xita(i),2)/4 + (pow_pos(a0(i,j)-xita0(i),2)-2 * (a0(i,j)-xita0(i)) * (a(i,j)-xita(i)))/4 <= xita(j); %C7

_______gamma * pow_pos(a(i,j)+r(j),2) + pow_pos(kappa(i,j)-miu(j),2) <= 2 * (kappa0(i,j)+miu0(j)) * (kappa(i,j)+miu(j)) - (kappa0(i,j)+miu0(j))^2 + gamma * (2*(a0(i,j)-r(j))*(a(i,j)-r(j))-(a0(i,j)-r(j))^2); %C12

______end

____end

__end

cvx_end

And the error is:

wrong usage *

The inner matrix dimensions must be consistent.

Error cvxprob/eliminate (line 137)

P = P * cvx_invert_structure( xR );

Error cvxprob/solve (line 18)

[ At, cones, sgn, Q, P, dualized ] = eliminate( prob, true, shim. dualize );

Error cvx_end (line 88)

solve( prob );

Error diedai (line 211) %diedai is script name

cvx_end

The C8 is:

(sigma * t(i) * xita(i)/(Pu * r(i) * beta^2 * dBE(i)^(-1))) + sum(B(i,:)) + sum(C(i,:)) >= log(1/p); %

**C8**