登录论坛

查看完整版本 : MATLAB中的特征值


poster
2019-12-10, 20:48
在MATLAB中,当我为对称矩阵运行命令[V,D] = eig(a) ,最大特征值(及其关联的矢量)位于最后一列。但是,当我使用非对称矩阵运行它时,最大特征值在第一列中。

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



回答:

您只需要找到D最大特征值的索引,就可以使用函数DIAG (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diag.html)提取主对角线,使用函数MAX (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/max.html)来获得最大特征值和它所在的索引,这很容易做到:

[V,D] = eig(a); [maxValue,index] = max(diag(D)); %# The maximum eigenvalue and its index maxVector = V(:,index); %# The associated eigenvector in V 注意:正如木片指出的那样 (https://stackoverflow.com/questions/3291770/eigenvalues-in-matlab/3293855#3293855) ,对于非对称矩阵,您可以具有复杂的特征值。在复数输入X , MAX (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/max.html)函数使用复数max(abs(X)) 。在大小相等的元素的情况下,使用相角max(angle(X)) 。



更多&回答... (https://stackoverflow.com/questions/3291770)