Here are my codes. The reason I want to understand how barx is stored is that when I use dual, I always get NaN. I would like to know how to handle this situation. Thank you very much!
R = 2;
C_GBD_process = init_binary_matrix(R,M,L);
F_GBD_fea = sdpvar(N,R,'full','complex');
phi_GBD_fea = sdpvar(L,1,'full','complex');
A_GBD_fea = sdpvar(N,N,'hermitian','complex');
B_GBD_fea = sdpvar(R,R,'hermitian','complex');
gamma_GBD_fea = sdpvar(1);
constraints = [];
constraints = [constraints, gamma_GBD_fea >= 0];
……
some constraints are omitted
……
aux_matrix = [A_GBD_fea, F_GBD_fea, 1/sqrt(M)*C_GBD_process;
F_GBD_fea', B_GBD_fea, kron(eye(R),phi_GBD_fea)';
1/sqrt(M)*C_GBD_process.', kron(eye(R),phi_GBD_fea), eye(R*L)];
constraints = [constraints,(aux_matrix >= 0):'required'];
constraints = [constraints, trace(A_GBD_fea)-R <= 0];
constraints=[constraints, trace(B_GBD_fea)-R <= 0];
options = sdpsettings('solver','mosek','verbose',1,'savesolveroutput',1,'savesolverinput',1);
sol = optimize(constraints, -gamma_GBD_fea, options);