I defined a complex variable in cvx, but I want to restrict the first element of the variable to be larger than the max of the variable, but it doesn't work. Someone told me to transform it using a binary variable, but I don't know how to do that? The code is in matlab:
cvx_begin quiet
variable wt(Mt-2) complex %variable
minimize(norm(cur_Qt*wt,1));
subject to
At_tar’*wt == 1;
abs(wt(1)) >= max(abs(wt))*0.0001; %%canstrain the first element of the variable
abs(wt(end)) >= max(abs(wt))*0.0001; %%canstrain the first element of the variable
for sl=1:length(sl_ind)
abs(Ats(:,sl)’*wt) <= 10^(desired_psll/20);
end
cvx_end
The error is: Disciplined convex programming error:
Invalid constraint: {convex} >= {convex}
error >= (line 21)
b = newcnstr( evalin( 'caller', 'cvx_problem', '[]' ), x, y, '>=' );
error hybrid_weight_location_minpsll (line 54)
abs(wt(1)) >= max(abs(wt))*0.0001;