Error: {positive constant} ./ {convex}

Disciplined convex programming error: Cannot perform the operation: {positive constant} ./ {convex} ,
which in

h(jd)=G0* G1* beta0/d1;

I don’t know how to correct this mistake, please help me.

Code:
while 1
cvx_begin
% variable q1_opt(1,2)
% variable q2_opt(1,2)
variable q1_xopt(1,length(H))
variable q1_yopt(1,length(H))
variable q2_xopt(1,length(H))
variable q2_yopt(1,length(H))
expression tempRate3(2U,Omax)
expression f3(2
U,Omax)
expression g3(1,Omax)
expression E3(2,Omax)
expression M3(Omax)

q1_opt=[q1_xopt(1,zz) q1_yopt(1,zz)];
q2_opt=[q2_xopt(1,zz) q2_yopt(1,zz)];

    for jre1=1:U
        re2(jre1)=sum((q1_opt-W(jre1,:)).^2 ,2);
    end
    for jre2=U+1:U*2
        re2(jre2)=sum((q2_opt-W(jre2,:)).^2 ,2);
    end
    re=re2';

    d(:,zz)=H(zz).^2+re;

    %计算信道增益h并排序--------------------------------------------------------
    G0=10;
    G1=10;
    beta0=0.00001;  % beta0=-50dB 10log10转换
    for jd=1:length(re)
    d1=d(jd,zz);
    h(jd)=G0*G1*beta0/d1;     % Disciplined convex programming error:   Cannot perform the operation: {positive constant} ./ {convex}
    end

    
    sort1=h(1:24); % 1行n列,1*24double  
    for i=1:24   
      for j=1:24-i
         if sort1(1,j)>sort1(1,j+1)
             temp=sort1(1,j);
             tempx=W48(j,1);   
             tempy=W48(j,2);
             rechange=re(j,1);

             sort1(1,j)=sort1(1,j+1);
             W48(j,1)=W48(j+1,1);
             W48(j,2)=W48(j+1,2);
             re(j,1)=re(j+1,1);  

             sort1(1,j+1)=temp;
             W48(j+1,1)=tempx;
             W48(j+1,2)=tempy;
             re(j+1,1)=rechange;
         end 
      end 
    end
    
      
      for l=1:L
            E3(l)=c1*norm(vSolution1(l))^3+c2/norm(vSolution1(l));
      end
      g3(1,o)=sum(E3(:));
      M3(o)=f3(48)-elta3(o)*g3(1,o); 
      
 cvx_end
      elta3(o+1)=f3(48)/g3(1,o);    
      if abs(M3(o)-EESolution3)>delta && o<Omax  
            o=o+1;
      else
          break;
      end
    
end           

end

That is not allowed by CVX’s DCP rules. You are basically taking the reciprocal of squared terms, so maybe pow_pos can be used, but I’m not sure it can due to sums of squares.

Even if you get that fixed up, you can’t use if statements whose conditions involve CVX variables or expressions, as you seem to do with sort1. You will need to use logic modeling using Big M.

Bottom line, even if Big M logic modeling is used, i have not looked carefully enough at your model to know whether it is convex, and can be formulated in compliance with CVX’s (MI)DCP rules. But convexity (of continuous relaxation) is the first thing you need to figure out.

thank you very much!