How do I express X=x*x‘

Now we’re going to use cvx to solve for an X ,X=x*x‘; I defined a complex variable x in terms of complex. cvx error, X may not be convex, how do I represent X. thanks

You can’t explicitly form X=x*x' in CVX unless x is a row vector; I presume your x is a column vector, which would result in x*x' being non-convex. Depending on how x*x' is going to be used, it’s possible there is some formulation in CVX which does not involve directly forming x*x'. For example, trace(x*x') can be formulated as square_pos(norm(x,'fro')).

Your fist task is to prove that the optimization problem you wish to enter in CVX is convex. Otherwise, CVX is not appropriate for the problem.

Can I just define X in terms of complex semidefinite?

You can declare X to be complex semidefinite, but that won’t make it have any relation to x, unless you perhaps use a semidefinite relaxation, which enforces X \succeq xx', but not X = xx', i.e., omits the rank one constraint, which is non-convex.