Hi all, here is the buggy code:
cvx_begin
variables c x(13) Y(13,13,m);
expressions K(12,12) A_0(13,13) D(13,13) S(13,13);
minimize(c)
subject to
for i=1:m
S=S+Y(:,:,i);
end
for k=1:m
[Y(:,:,k) A(:,:,k);A(:,:,k) A_0]==semidefinite(26);
end
A_0==semidefinite(13);
C*A_0-S==semidefinite(13);
cvx_end
I omit the definition of A_0 and C for clarity. Whenever I run it (let’s call it ProgramA), it returns the following error:
Index exceeds matrix dimensions.
Error in cvxprob/eliminate (line 200)
n_save = nnz(sum(dbCA(:,ineqs~=0)~=0,1)==1+(dbCA(1,ineqs~=0)~=0));
Error in cvxprob/solve (line 17)
[ At, cones, sgn, Q, P, dualized ] = eliminate( prob, true, shim.dualize );
Error in cvx_end (line 79)
solve( prob );
Error in ProgramA (line 65)
cvx_end
Please do believe me that the third dimension of A(:,:, is m (ie. there are really m A(:,:,i)). I found a weird thing. If in the for loop wrapping the semidefinite constraints, the upper index is reduced to m-1 from m, or if I delete the constraint “C*A_0-S==semidefinite(13);”, then it runs normally.
Thanks in advance for any possible answer.