matlab - Octave /Matlab : PCA on sparse matrix: how to get only the most important eigenvectors?

标签 matlab octave pca sparse-matrix

我正在使用 Octave,并且有一个巨大的稀疏矩阵,我必须获取其特征值。但是,如果我只是使用一个函数来获取所有特征值和特征向量,结果将占用太多空间,因为输入矩阵由于某种原因而稀疏。

如何才能获得有限数量的最重要的特征向量?

最佳答案

使用eigs而不是eig :

D = eigs(A,k);

这将返回矩阵 Ak 个最大特征值。根据this page ,Octave 确实支持稀疏矩阵的 eigs。 eigs 使用与 eig 不同的技术,总体速度较慢,并且通常不应使用,除非您描述的情况除外。

例如,如果您想要仅相对于实部的最大特征值,请务必检查 sigma 参数的选项。

eigs 的 Matlab 文档是 here .

关于matlab - Octave /Matlab : PCA on sparse matrix: how to get only the most important eigenvectors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17372325/

相关文章:

matlab - 如何使用 Matlab 的 polyfit 获得正确的曲线拟合?

matlab - 使用 Matlab 在功率谱分析图上检测并标记最大峰值?

matlab - 如何将变量附加到 .mat 文件?

java - 如何使用系统调用 Octave 中的 .jar?

r - 如何使用PCA对高度相关变量进行时间序列预测?

c - 尽可能高效地评估具有约 60,000 个短符号表达式的 vector (Matlab,C)

terminal - 定制 Octave

octave - 回调函数抛出意外的 "nonconformant arguments"错误

algorithm - 为什么我得到一个充满 NaN 的权重矩阵?

r - 错误 : Too few points to calculate an ellipse with 3 points?-R