查看单个帖子
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB中的特征值

在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)) 。



更多&回答...
poster 当前离线   回复时引用此帖