SDP trace equality

Hello dear friends,

I am trying to solve the following problem:


cvx_begin SDP quiet

variable landa_R( N_R(i) , N_R(i) ) hermitian
variable t


maximize t

subject to

landa_R        >= 0;
trace(landa_R)  = P_R;


cvx_end

However, when the compiler reaches the line " trace(landa_R) = P_R ", it generates the following error:

Error using subsindex
Function ‘subsindex’ is not defined for values of class ‘cvx’.

CVX works with for example " trace(landa_R) <= P_R ", but it generates an error when using equality. Does anybody know where does the problem come from?

Thank you in advance.

Yours,
Ashkan.

Your equality constraint needs to be == , not = . (See the cvx user’s guide.)

Change it to trace(landa_R) == P_R;

Dear Mark,

Thank you for solving my problem.