2012-01-10 36 views
2

可能重复:
Efficient low-rank appoximation in MATLAB做奇异值分解在Matlab

我试图尺寸为7468在Matlab X 1193的矩阵做SVD。令人惊讶的是,这需要很长时间 - 我认为这是一个相对较小的Matlab/SVD矩阵。 matlab中是否有更好的SVD实现来处理这种大小的矩阵?我并不需要全部来自U和V的奇异向量,但是它们中的相对少数(例如50左右)。

+0

我有矩阵5383x6236,我使用Math.Extreme代码thorowing OutOfMemoryException异常,我可以在MATLAB做到这一点? – 2014-06-18 06:13:54

回答

6

是的,它是在MATLAB可能,使用svds(用s末):

k=50; 
[U,S,V]=svds(A,k); 
+0

我有矩阵5383x6236,我正在使用Math.Extreme代码扼杀outofMemoryException我可以在matlab中做到这一点? – 2014-06-18 06:14:11

+0

什么是“Math.Extreme”?无论如何,如果它抛出OutofMemoryException,我想你应该购买更多的RAM或使用更小的矩阵。 – Oli 2014-06-19 02:41:09

+0

Math.Extreme是.net libruary – 2014-06-19 04:08:54