I want to do the conditional assignment of variables as shown below:
{val, vec}={{-((1 + I)/Sqrt[2]), (1 + I)/Sqrt[2], -((1 - I)/Sqrt[2]), (1 - I)/
Sqrt[2]}, {{(1 - I)/Sqrt[2], I, (1 + I)/Sqrt[2],
1}, {-((1 - I)/Sqrt[2]), I, -((1 + I)/Sqrt[2]), 1}, {(1 + I)/Sqrt[
2], -I, (1 - I)/Sqrt[2],
1}, {-((1 + I)/Sqrt[2]), -I, -((1 - I)/Sqrt[2]), 1}}};
If [(Select[{val, vec}//Transpose, Element[#,Reals]&]//Length)>0,
{rval,rvec}=Select[{val, vec}//Transpose, Element[#,Reals]&]
]
But I didn’t come up with a more concise method to achieve this goal. Any hints will be appreciated.
Regards,
Zhao