As is evident the function "roots" finds all the roots of equation (both imaginary and real roots). Based on the boundary condition or the condition of the problem either real or imaginary roots are considered. For example if you have the 10th order equation finding the imaginary and real roots , and using them will be difficult.
The proposed Mfile can easily solved the above problem. On the other hand, it is like a filter for function root (For more information see the examples in the Mfile). The elapse time of the proposed Mfile is very short. The program has been performed in MATLAB 2009a to MATLAB 2015a.
Updated the file