获得对应于第i个最大特征值的特征向量

时间:2014-03-04 08:07:35

标签: matlab for-loop pca eigenvector eigenvalue

我已经为我的作业尝试了这个代码,但是我收到类型错误

??? Subscript indices must either be real positive integers or logicals.

这是我的代码:

for i = 5:200
    eigvecm = eigvecm(:, end:-1:end-(int8(i)-1));
end

请指出如何完成这项工作?

1 个答案:

答案 0 :(得分:1)

听起来非常像end-(int8(i)-1)最终达到零或以下。收到错误后,请检查i的值是多少,并将其与eigvecm列的列数进行比较。

BTW如果你想要对应于第i个最大特征值的特征向量如何:

[vec, val] = eig(M);
[~, ind] = sort(diag(val), 'descend');

ind(i)是第i个最大特征值的列号。所以要找到相应的特征向量:

vec_i = vec(:, ind(i));