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:
Then ZF precoding W is applied:
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?