```
clear;clc;
a=randn(3,1)+1i*randn(3,1);
A=a*a';
cvx_begin sdp
variable phi(3,1) complex
expression B(3,3)
B=phi*phi';
minimize trace(A*B)
subject to
[phi*phi',phi;phi',1 ]==hermitian_semidefinite(4);
cvx_end
```

For the above problem, I found that the outer product (x*x’) is not allowed in CVX. The error is shown as

Disciplined convex programming error: Invalid quadratic form(s): not a square.

What’s the meaning of this error and how can I express outer product in object and constraints?