我使用MATLAB
进行特征值分解,数据维度约为10000
,因此协方差矩阵为10000*10000
。当我在MATLAB中使用eig()
函数时,它非常慢。有没有办法加快特征值分解。
我使用特征值分解来进行主成分分析(PCA),所以我只使用前K个特征值和特征向量。无需获得所有特征值和特征向量。我曾尝试使用Intel-MKL
进行特征分解,但是当我使用mex
接口时,会出现一些错误。我将其发布在https://stackoverflow.com/questions/19220271/how-to-use-intel-mkl-for-speed-my-own-matlab-mex-cpp-applications
请给我一些建议,谢谢。
答案 0 :(得分:1)
k
值感兴趣,请使用eigs
。例如,
eigs(A,k)
返回k个最大幅度的特征值。请注意,eigs
仅对前几个特征值更快,而对于k> 1更慢。一些价值(可能是5 ......)