Cannot support cell arrays containing cell arrays or objects

My MATLAB code is as follows:

N = 3
cvx_begin sdp
variable X(4,4,N+1) symmetric
variable Y(4,4,N) symmetric
minimize(0);
subject to
trace(X(:,:,1))==1;
block_toeplitz(X) + block_hankel(Y) == semidefinite(4*(N+1));
cvx_end

Note that:
1, block_toeplitz(X) & block_hankel(Y) are self-written funtions. Both functions build
block toeplitz and block hankel matrices from given set of matrices.
2. The objective function is supposed to be 0 temporarily.

However, CVX shows:
Cannot support cell arrays containing cell arrays or objects

My problem comes from a paper; the author used YALMIP to solve the problem with pseudo code:
(I just want to implement it in CVX)

How to fix this problem? Thanks

It appears that block.toeplitz and block.hankel are right at the heart of matters, but you haven’t provided the code for them.What and why are they doing with cell arrays?

I just find the problem and am fixing it. I will update my problem related to this. Thanks

Just make sure if the following is correct:


N=3;
rand(‘state’,1);
A = rand(4,4,N+1);
B = rand(4,4,N)

cvx_begin sdp
variable X(4,4,N+1) symmetric
variable Y(4,4,N) symmetric

**minimize(-(A(:)'X(:)+B(:)'Y(:)));

subject to
trace(X(:,:,1))==1;
block_toeplitz(X) + block_hankel(Y) == semidefinite(4*(N+1));
cvx_end

If the objective function is the following matrices inner product:

< A0,X0 > + < A1,X1 > + < A2,X2 > + < A3,X3 > + < A4,X4 > + < B1,Y1 > + < B2,Y2 > + < B3,Y3 >

with Ai comes from A = rand(4,4,N+1); and Bi comes from B = rand(4,4,N)

then in the matlab code, is my objective function correct? Can I write in that way?

That looks correct to me, presuming you want to maximize the sum of the inner products, given that you are minimizing the negative of the sum.

1 Like