here is part of my code:
cvx_begin
cvx_solver sedumi
variable rx(n,n) symmetric
variable px(n,n)
expressions L1(n) k1(n) r1(n) rate(1,n) s1(1,n) s2(1,n) s3(1,n)
expressions temp temp0 temp1
for i=1:n-1
for j=i+1:n
temp=rx(i,j)+px(i,j)*h(1,i)/z;
temp0=rx(i,j)+px(i,j)*h(1,j)/z+px(j,i)*h(1,j)/z;
L1(i,j)=-rel_entr(rx(i,j),temp)/log(2)-rel_entr(rx(i,j),temp0)/log(2);
temp1=rx(i,j)+px(i,j)*h(1,j)/z;
k1(i,j)=-rel_entr(rx(i,j),temp1)/log(2);
end
end
for i=1:n
temp=rx(i,i)+px(i,i)*h(1,i)/z;
L1(i,i)=-rel_entr(rx(i,i),temp)/log(2);
end
for i=1:n-1
for j=i+1:n
c1=c1+t*w*( L1(i,j)-( v1(i,j)+ [v11(i,j) , v12(i,j) ]*( [rx(i,j),px(i,j)]-[r(i,j),p(i,j)] )' ));
end
end
for i=1:n
c2=c2+t*w*L1(i,i);
end
c=c1+c2;
for i=1:n
for j=1:n
if j<=i-1
rate1=rate1+( L1(j,i)-( v1(j,i)+ [v11(j,i) , v12(j,i) ]*( [rx(j,i),px(j,i)]-[r(j,i),p(j,i)] )' ) );
end
if j>=i
temp=rx(i,j)+px(i,j)*h(1,i)/z;
rate2=rate2+( -rel_entr(rx(i,j),temp)/log(2));
end
end
rate(1:i)=rate1+rate2;
rate1=0;
rate2=0;
end
for i=1:n-1
for j=i+1:n
s1(1,i)=px(i,j)-rx(i,j)*pnomamax;
s2(1,i)=px(j,i)-rx(i,j)*pnomamax;
end
end
for i=1:n
s3(1,i)=px(i,i)-rx(i,i)*pomamax;
end
maximize (c)
subject to
sum(sum(triu(rx)))<=1
rate(:)>=1/30
s1(:)<=0
s2(:)<=0
s3(:)<=0
rx(:)>=0
px(:)>=0
cvx_end
and i got a error message like this:
Subscript indices must either be real positive integers or logicals.
Error in cvx_extract (line 344)
tmpv = sum(dbcA(temp,:)~=0,2)==1;
Error in cvx_solve (line 26)
[ At, cones, sgn, Q, P, exps, dualized ] = cvx_extract( shim.config, shim.name );
Error in cvx_finish
Error in cvx_end (line 11)
evalin( 'caller', 'cvx_finish' );
Error in test4noma (line 151)
cvx_end
I set the breakpoint and it will occur in execution the “cvx_end”.It looks like there is no invalid subscript indices
I wonder it is my problem or something else.
Thank you for your help.
there is some parameters needed and i will upload it later