Thank you so much for your reply.

I made use of the construct you mentioned and write the following code. I have difficulty in implementing the constraints (second constraint above) and don’t know if I use the CVX correctly or not. Could you please kindly take a look at the following code and let me know what kind of modification I need to make? Thanks in advance.

```
[tmp1,tmp2,y1,y2] = ParametersNeededInCVX(.....);
cvx_begin
cvx_quiet(true); % This suppresses screen output from the solver
variable c(max(nr_L(:)), numel(nr_L), numel(nbrOfSubCarriers), max(nbrOfSubCarriers(:))) real;
OBJ = 0;
for k = 1 : numel(nbrOfSubCarriers)
for m = 1: nbrOfSubCarriers(k)
for eNodeB = 1 : numel(nr_L)
for UE = 1 : nr_L(eNodeB)
OBJ = OBJ - tmp1(eNodeB,k,m)*rel_entr(c(UE, eNodeB, k, m),c(UE, eNodeB, k, m)+y1(UE, eNodeB, k, m))/log(2) ...
- tmp2(eNodeB,k,m)*rel_entr(c(UE, eNodeB, k, m),c(UE, eNodeB, k, m)+y2(UE, eNodeB, k, m))/log(2);
end
end
end
end
maximize(OBJ)
subject to
0 <= c <= 1;
Const = 0;
for eNodeB = 1 : numel(nr_L)
for UE = 1 : nr_L(eNodeB)
Const = Const + c(UE, eNodeB, k, m) <= 1;
end
end
cvx_end
```