我目前正在使用命令:[V,D] = eig(X)
其中V是特征向量,D是对角矩阵中的特征值。关于如何创建Y的任何想法,一个对应于p个最大特征值的特征向量矩阵?
答案 0 :(得分:1)
一种方法是eigs:
[V,D] = eigs(A,size(A,1)-1)
第二种方式是排序:
if ~issorted(diag(D))
[V,D] = eig(A);
[D,I] = sort(diag(D));
V = V(:, I);
end
答案 1 :(得分:0)
p=3; %'as a example say we want the eigenvectors for the 3 largest eigenvalues'
X=rand(4); %'take whatever matrix 4x4 for the example'
[V, D] = eig(X);
for ind=1:length(D)
d(ind)=abs(D(ind,ind));
end
[B,IX] = sort(d,'descend');
Y = V(:,IX(1:p));
Y的列包含特征向量,这些特征向量按照从左到右的降序对应于特征值。 请注意,我使用abs()函数来测量" size"特征值。请注意,您可能更喜欢使用其他功能。