kam*_*aci 13 matlab matrix linear-algebra eigenvalue eigenvector
我在Matlab上使用了一个函数:
[V,D] = eig(C);
Run Code Online (Sandbox Code Playgroud)
我看到V和D总是按升序排序.它是否总是那样,或者我应该在获得V和D价值后对它们进行排序?
Rod*_*uis 32
如果您想保证排序升序值,只需做额外的
if ~issorted(diag(D))
[V,D] = eig(A);
[D,I] = sort(diag(D));
V = V(:, I);
end
Run Code Online (Sandbox Code Playgroud)
按照你想要的方式对它们进行排序.
或者,使用eigs:
[V,D] = eigs(A,size(A,1)-1)
Run Code Online (Sandbox Code Playgroud)
小智 24
V不按任何顺序排序,除了对应于相关特征值的顺序.但也许你并不是那个意思.
特征值TEND按降序排列,但这根本不确定.它们往往是有序的,因为最大的往往会从算法中涓涓细流.Eig最后没有确定这一事实.
我可能会指出eigenshuffle工具,设计用于获取一系列特征问题,然后求解特征值(和相应的特征向量),使它们沿序列一致.
如果你确实需要它们按降序排列,那么就做一个确保这个事实.确保您还以相同的顺序对向量进行排序.