我想N=10,000从矩阵中选择最主要的组件.在完成pca之后,MATLAB应该返回一个pxp矩阵,但它不会!
>> size(train_data)
ans =
400 153600
>> [coefs,scores,variances] = pca(train_data);
>> size(coefs)
ans =
153600 399
>> size(scores)
ans =
400 399
>> size(variances)
ans =
399 1
Run Code Online (Sandbox Code Playgroud)
应该是coefs:153600 x 153600?和scores:400 X 153600?
当我使用下面的代码时,它给我一个Out of Memory错误::
>> [V D] = eig(cov(train_data));
Out of memory. Type HELP MEMORY for your options.
Error in cov (line 96)
xy = (xc' * xc) / (m-1);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么MATLAB会返回一个较小的维矩阵.它应该返回错误与pca:153600*153600*8字节= 188 GB
eigs错误:
>> eigs(cov(train_data));
Out of memory. …Run Code Online (Sandbox Code Playgroud)