此函数实现了快速截断的 SVD。 我们经常想计算奇异值分解。 但大多数时候,我们实际上并不需要像主成分分析中那样的所有奇异向量/值。
这也证明了以下事实:在实践中出现的许多矩阵确实表现出某种结构,导致只有少数奇异值实际上是不可忽略的。
最近的研究表明,当我们想要截断的 SVD 时,随机算法可以产生令人难以置信的加速度。
用法 :
输入: * A : 我们想要的 SVD 矩阵* K:要保留的组件数
输出: * U,S,V : 作为内置 svd matlab 函数的经典输出
这是我的小型笔记本电脑上 2000x2000 秩为 100 的矩阵的一个小例子:
>> A = randn(2000,100)*randn(100,2000); >> 抽动; [U1,S1,V1] = svd(A); 目录经过的时间是 6.509186 秒。
>> 抽动; [U2,S2,V2] = rsvd(
2021-09-19 01:10:51
1KB
matlab
1