按特定顺序将复杂矩阵和向量排序在一起

时间:2014-11-23 19:47:58

标签: matlab sorting matrix vector complex-numbers

如何将矢量e和矩阵v一起排序,我们必须要考虑:每个特征值对应于矩阵v中的特征向量,如图中所示。

v =

 0.9978 + 0.0022i   0.9978 - 0.0022i   0.9179 - 0.0199i   0.9179 + 0.0199i
-0.4665 + 0.0050i  -0.4665 - 0.0050i   0.9805 - 0.0195i   0.9805 + 0.0195i
-0.0003 - 0.0025i  -0.0003 + 0.0025i  -0.0008 - 0.0162i  -0.0008 + 0.0162i
 0.0001 + 0.0012i   0.0001 - 0.0012i  -0.0008 - 0.0173i  -0.0008 + 0.0173i

所以我们可以说例如特征值e(1,1)对应于特征向量v(:,1)。在图片中是按照特定顺序的矢量e_sort和矩阵v_sort,我需要它。

enter image description here

规则适用于矢量e: 首先必须是:

 -a+b*i

然后:

 -a-b*i

我们可以说:

  0 < b_1 < b_2 < ... < b_n

感谢。

1 个答案:

答案 0 :(得分:0)

答案也很相似:)

negIm = imag(e) < 0;
[e1,ie1] = sort(e(~negIm));
[e2,ie2] = sort(e(negIm));
newe = cat(1,e1,e2);

v1 = v(:,~negIm); v2 = v(:,negIm);
newv = cat(2,v1(:,ie1),v2(:,ie2));
相关问题