# Illegal operation: {concave} - {concave}

Based on where the error occurred, I guess the problem occurred because of the following statement：
` R(m,1) = b(m)*log(P(m,1)*H_ST_m(m))-b(m)*log(Pmid(m,1)*H_ST_m(m)+Im(m)+B*n0)-c(m);`
For this statement, P is a matrix of variables. Pmid represents the variables in this variable matrix other than P (m,1). I want to know if they’re not allowed to be in the same formula. The complete code for the cvx section is as follows. If I can get some help, I would be very grateful

``````cvx_begin
cvx_solver mosek
variable P(M,1)
variable eta
P >= 0.1;%C3
maximize eta
subject to
I_m = cvx(zeros(1,N));
for n = 1:N
for k=1:K
for m=1:M
I_m(1,n) = I_m(1,n) + X_out(m,k)*P(m,1)*X_PU(n,k)*g_BS_m(m,n);
end
end
I_m(1,n) <= In; % C1
end
sum(P)+P_c<=P_max;%C2
R = cvx(zeros(M,1));
Pmid = cvx(zeros(M,1));
for m=1:M
for i=1:M
if Interfering_users(m,i)==0
continue
end
Pmid(m,1) = Pmid(m,1)+P(Interfering_users(m,i));
end
R(m,1) = b(m)*log(P(m,1)*H_ST_m(m))-b(m)*log(Pmid(m,1)*H_ST_m(m)+Im(m)+B*n0)-c(m);
R(m,1)>=eta;
end
% sum(R)>=eta;%目标函数
cvx_end
``````

That is not allowed by CVX. if that somehow comes out to be a convex constraint because everything combines in just the right way with whatever the input data is, it would have to be reformulated. However, unless you show otherwise, I will assume it is a non-convex constraint.

You could consider using a non-convex solver under YALMIP.

Thank you for your reply. I guess I need to change my expression.