如何在 Octave 中按虚部的升序标记矩阵的复特征值?

How label the complex eigenvalues of a matrix in ascending order of their imaginary part in Octave?

当使用函数 eig(a) 时,Octave 似乎没有以任何特定顺序对复特征值进行排序(而对于实特征值,Octave 以升序存储特征值及其特征向量)。

我需要按虚部的升序对矩阵的复特征值(以及它们各自的特征向量)进行排序。是否有任何内置例程可以做到这一点?

如果没有,如何实现?

sort 函数有第二个输出参数,它按排序顺序将索引提供给输入。对于您的情况,如果 d 是特征值向量:

[~,I] = sort(imag(d));
d = d(I);

可以使用相同的I对对应的特征向量进行排序 V 顺序相同:

V = V(:,I);