我正在尝试使用PCA对我的数据进行princomp(x)标准化.
数据是<16 x 1036800 double>.这运行我们的内存,除了这是一台新计算机,计算机拥有24GB的RAM用于数据挖掘,这是太过预期.MATLAB甚至列出了内存检查中可用的24GB.
MATLAB在执行PCA时实际上是否内存不足,还是MATLAB没有使用RAM来充分发挥它的潜力?任何信息或想法都会有所帮助.(我可能需要增加虚拟内存,但假设24GB已经足够了.)
我想使用Matlab的"princomp"函数,但是这个函数给出了一个排序数组中的特征值.这样我就无法找出哪个列对应哪个特征值.对于Matlab,
m = [1,2,3;4,5,6;7,8,9];
[pc,score,latent] = princomp(m);
Run Code Online (Sandbox Code Playgroud)
是相同的
m = [2,1,3;5,4,6;8,7,9];
[pc,score,latent] = princomp(m);
Run Code Online (Sandbox Code Playgroud)
也就是说,交换前两列不会改变任何东西.潜在的结果(特征值)将是:(27,0,0)信息(特征值对应于哪个原始(输入)列)丢失.有没有办法告诉matlab不要对特征值进行排序?