MATLAB中的特征值

Spe*_*cer 8 matlab linear-algebra eigenvalue eigenvector

在MATLAB中,当我运行[V,D] = eig(a)对称矩阵的命令时,最大特征值(及其相关向量)位于最后一列.但是,当我使用非对称矩阵运行它时,最大的特征值在第一列中.

我正在尝试计算特征向量中心性,这要求我将计算与最大特征值相关联的特征向量.因此,最大的特征值出现在两个不同的位置这一事实使我很难找到解决方案.

Amr*_*mro 15

我通常做的是:

[V D] = eig(a);
[D order] = sort(diag(D),'descend');  %# sort eigenvalues in descending order
V = V(:,order);
Run Code Online (Sandbox Code Playgroud)

  • 这是一种更通用的解决方案,在计算PCA时非常有用. (3认同)

gno*_*ice 5

您只需要找到最大特征值的索引D,可以使用函数DIAG轻松完成提取主对角线和函数MAX以获得最大特征值及其出现的索引:

[V,D] = eig(a);
[maxValue,index] = max(diag(D));  %# The maximum eigenvalue and its index
maxVector = V(:,index);           %# The associated eigenvector in V
Run Code Online (Sandbox Code Playgroud)

注意:正如木片指出的那样,非对称矩阵可以有复杂的特征值.在复杂输入上操作时X,MAX函数使用复数的大小max(abs(X)).在相等幅度元件的情况下,使用相位角max(angle(X)).