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;


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.


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.