I want to use CVX to solve antenna selection problem. An integer programming problem is formulated, and I defined an diagonal activity matrix S, whose diagonal elements is 0-1 integer.
The selected channle matrix Hs can be expressed as:Hs=H*S
Then ZF precoding W is applied: W=Hs'*inv(Hs*Hs')
My matlab code is as follows:
variable s(Nt)
S=diag(s);
W=(hmat*diag(s))'*inv((hmat*diag(s))*(hmat*diag(s))');
But matlab reports an error:
Disciplined convex programming error:
Only scalar quadratic forms can be specified in CVX
So how can I modify the precoding matrix W after antenna selection in CVX?