Matlab的esort.m的替代函数

时间:2017-04-12 11:42:52

标签: matlab

我需要按降序对特征向量的向量Ev(从[Ev,Ed] = eig(A)获得)进行排序。我还需要在排序中使用的索引。

我不能使用控制系统工具箱附带的esort.m(我没有,也不能得到)。我可以使用esort.m的替代函数吗?

感谢。

1 个答案:

答案 0 :(得分:1)

使用sortrealimag功能,您可以"复制" esort函数:

imre = rand(10,1)+rand(10,1)*1i; %random imaginary number

re = real(imre);                 %extract the real part
im = imag(imre)*1i;              %extract the imaginary part

[sorted,ind] = sort(re);         %sort according to the real part
imre_sort = sorted+im(ind);      %add the imaginary part.

所以简单的功能类似于:

function imre_sort = todelete(imre,ord)
%ord can be 'ascend' or 'descend'
    if nargin == 1
        ord = 'ascend';
    end

    re = real(imre);
    im = imag(imre)*1i;

    [sorted,ind] = sort(re,ord);
    imre_sort = sorted+im(ind); 

end