MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   MATLAB中的特征值 (https://www.labfans.com/bbs/showthread.php?t=23720)

poster 2019-12-10 20:48

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

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



[B]回答:[/B]

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

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



[url=https://stackoverflow.com/questions/3291770]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 01:08

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.