可能重复:
MATLAB 内存不足,但不应如此
我想对大量数据点进行 PCA 分析。更具体地说,我知道数据点的数量和特征的数量size(dataPoints) = [329150 132]
在哪里。328150
132
我想提取特征向量及其相应的特征值,以便我可以执行 PCA 重建。
但是,当我使用该princomp
功能时(即[eigenVectors projectedData eigenValues] = princomp(dataPoints);
我收到以下错误:
>> [eigenVectors projectedData eigenValues] = princomp(pointsData);
Error using svd
Out of memory. Type HELP MEMORY for your options.
Error in princomp (line 86)
[U,sigma,coeff] = svd(x0,econFlag); % put in 1/sqrt(n-1) later
但是,如果我使用较小的数据集,我没有问题。
如何在 Matlab 中对我的整个数据集执行 PCA?有人遇到过这个问题吗?
编辑:
我已经修改了princomp
函数并尝试使用svds
而不是svd
,但是,我得到了几乎相同的错误。我已经放弃了下面的错误:
Error using horzcat
Out of memory. Type HELP MEMORY for your options.
Error in svds (line 65)
B = [sparse(m,m) A; A' sparse(n,n)];
Error in princomp (line 86)
[U,sigma,coeff] = svds(x0,econFlag); % put in 1/sqrt(n-1) later