Undefined function 'log2' corresponding to input parameter of type 'CVX'

   Hello,
  for n=1:N
             noise(n)=1+2*inv_pos(dd_ue(n));
             R2(n)=log2(noise(n));
         end

dd_ue(n) is a variables, 'Undefined function ‘log2’ corresponding to input parameter of type ‘CVX’ ',How to solve this problem? Thanks u very much

log2(x) = log(x)/log(2)

log(x) is supported by CVX for concave x, even though log2(x) is not.

However, noise(n) is convex, and is not accepted as an argument of log, so you will need a more complicated reformulation, One way presuming R(n) is used in a convex fashion in your program, is to apply the first log–sum-inv solution in section 5.2.7 of https://docs.mosek.com/modeling-cookbook/expo.html 9 . with dd_ue(n)/2 as x.

variables s(N) t(N) y(N)
for n = 1:N    
    t(n) >= log_sum_exp([0 y(n)])
    dd_ue(n)/2  >= exp(-y(n))
    R2(n) = t(n)/log(2);
end

Thank you very much for your timely reply, which has helped me a lot. Wish you all the best!