matlab中如何利用isreal函数筛选出实数根?

请教大家一个问题,我有一个多项式方程,我利用roots函数求出来三个根,其中一个实根,两个复根如下:
0.004124629959900 + 0.024781435463747i;
0.004124629959900 - 0.024781435463747i;
0.004713110388716 + 0.000000000000000i
现在我想利用isreal函数选出其中这个实根,将它带入到后面的程序中继续运算,但是我发现一个问题就是isreal 函数中有个解释是这样的:
If A has a stored imaginary part with value 0, then isreal(A) returns logical 0 (false).
那这个意思是不是即使我上面有一个实根,但是它有虚部存在(虽然为0),但是isreal依然会返回逻辑假值0,那么我用isreal函数是不是就不能把这个实根筛选出来赋值给别的参数了?

没错,isreal的功能是这样的。

对于你的需求,可以使用

norm(imag(a))==0

来判断虚部是否为0

温馨提示:答案为网友推荐,仅供参考
相似回答