【问题标题】:How do I factorize a matrix(m x n) into two factors (m x r, r x n) in Matlab?如何在 Matlab 中将矩阵(m x n)分解为两个因子(m x r,r x n)?
【发布时间】:2012-03-25 01:08:08
【问题描述】:

我想从一个 mxn 矩阵 A 开始,并将其分解为两个矩阵 mxr 和 rxn。 r 可以大于矩阵 A 的维数。

nnmf 只允许r< min(size(A))

有没有办法可以将矩阵分解为两个矩阵?

【问题讨论】:

  • 您需要更具体地说明您想要哪种分解。对我来说,让 r 大于 min(size(A)) 是没有意义的,除非你试图找到一个过完备的稀疏基组。在这种情况下,您需要对您想要的内容进行更多限制。

标签: matlab matrix decomposition factorization matrix-factorization


【解决方案1】:

您可以访问Professor Haesun Park's Academic Home Page 并从那里下载this package

实际上,她在 Matlab 中使用交替的非负约束最小二乘法和块主枢轴/活动集方法实现了非负矩阵分解

您还可以在 Matlab 中找到混合成员矩阵分解 (M3F) 的实现,here

【讨论】:

    【解决方案2】:

    matlab 中提供了一些分解函数,请参见此处: http://www.matrixlab-examples.com/matrix-decomposition.html

    例如LU / qr - 因式分解、cholesky 等...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      相关资源
      最近更新 更多