Aside from breaking multiple CVX rules, your code doesn’t even seem to correspond to the image.

I don’t know why you have R*R' in numerator of SINR. SINR is basically h'*R*h/(h'*R*h + constant). I don’t know what square_pos(norm(Wc(:, j)’ * barHbsue)); is supposed to be, because (17) shows \Phi, which should be input data for this CVX problem per your comment, “Step 1: Optimize Wc given Phi”. I have no idea whether when SINR is properly fixed up,it can be incorporated into log(1+SINR) in away which makes the latter concave and in accordance with CVX’s rules.

I don’t know whether you are declaring the correct things as CVX variables. For instance, should R, and not w be the CVX variable, and then formulate problem which relaxes (or ignores) R = w*w'. You need to intimately understand all that.

Your first order of business is to write out a CONVEX optimization problem for CVX to solve at each iteration. You need to prove that problem is convex. if you have done so, you then need to enter it following CVX"s rules.

As for SINR, if you get past the non-convexities, etc, it is an expression, and because you are indexing into it when assigning, you need to declare it as an expression, not setting it to zeros(k,1). CVX initializes all declared expressions to all zeros. The Basics — CVX Users' Guide

Because your code is in such a horrible shape, I won’t try to find all the problems with it