在MATLAB中,当我为对称矩阵运行命令[V,D] = eig(a) ,最大特征值(及其关联的矢量)位于最后一列。但是,当我使用非对称矩阵运行它时,最大特征值在第一列中。
我正在尝试计算特征向量中心性,这要求我计算与最大特征值相关的特征向量。因此,最大特征值出现在两个不同的位置这一事实使我很难找到解决方案。
回答:
您只需要找到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
注意:正如
木片指出的那样 ,对于非对称矩阵,您可以具有复杂的特征值。在复数输入X ,
MAX函数使用复数max(abs(X)) 。在大小相等的元素的情况下,使用相角max(angle(X)) 。
更多&回答...