I know that F_BB(:,:)-F_BB_1(:,:)== semidefinite(n) can be used if the matrix is n*n, but if the two matrices are m*n, can they be compared?

Eigenvalues are only defined for square matrices. So only square matrices can be (symmetric) positive semidefinite.

For rectangular matrices, singular values are still meaningful. So for instance, if `X`

is a rectangular matrix variable, `norm_nuc(X)`

, which is the sum of the singular values of `X`

; or the spectral norm, `norm(X)`

, which is the largest singular value of `X`

(which if X is a vector, is the same as the vector 2-norm), are convex and can be used in CVX.

Affine rectangular matrices can be constrained to be equal to each other, which constrains all elements to be equal between the matrices.

Thank you very much for your reply, I would like to ask if it can be written as norm_nuc(F_BB_1)<=norm_nuc(F_BB), if it is to compare each element of them, is it equivalent to F_BB_1(:)<=F_BB(:);

`norm_nuc(F_BB_1)<=norm_nuc(F_BB),`

is non-convex due to convex term on RHS of `<=`

. But it’s not what you want.

`F_BB_1 <= F_BB`

is allowed if both sides are variables (or affine expressions). It imposes `<=`` constraint on each corresponding element of LHS and RHS.

If they are all variables, I can directly write F_BB_1 <= F_BB, then if I want to express F_BB_1 <= a zero matrix of the same size（m*n）, how to express this?

` F_BB_1 <= zeros(m,n)`

or equivalently

`F_BB_1 <= 0`

I suggest you carefully read the entirety of the CVX Users’ Guide.