Rice University logo



LMaFit is a MATLAB package that currently solves the following problems

  1. Matrix Complete (MC)
    Find a rank-r matrix U such that Uij ~= Aij, (i,j) in E
  2. Sparse Matrix Separation (SMS)
    Find a rank-r matrix U and a sparse matrix S such that U + S ~= A.
  3. Matrix Compressive Sensing (MCS)
    Find a rank-r matrix U such that L(U) ~= b.

where the matrix A is given either in part as in MC or completely as in SMS, while L in MCS is an “underdetermined” linear operator. In general, we assume that data in A or b contain noise. Currently, we also assume L*L’=I. The matrix completion code does not require users to set any parameter, while the other two codes requires the choice of a balancing parameter.

Preliminary testing showed that the MC code is highly competitive with existing codes. For example, within 2 minutes on a MacBook Pro laptop, LMatFit vb3 MC code can complete a 100,000 by 100,000 matrix of rank-10 using a 0.12% sample. LMatFit vb3 MC code only requires an over-estimate of the rank and then tries to estimate the correct rank. Moreover, the code can handle noisy data.

The code for sparse matrix separation was tested on removing both impulsive and white noise from a 512 by 512 checker board image; see the noisy and denoised image set 1 (also see image set 2 and image set 3). Limited testing was done for the MCS code as well.

Tech reports

Zaiwen Wen, Wotao Yin, and Yin Zhang. Solving a Low-Rank Factorization Model for Matrix Completion by a Non-linear Successive Over-Relaxation Algorithm, submitted. Rice CAAM Tech Report TR10-07. [pdf]

Yuan Shen, Zaiwen Wen, and Yin Zhang. Augmented Lagrangian Alternating Direction Method for Matrix Separation based on Low-Rank Factorization. Rice CAAM Tech Report TR11-02. [pdf]


LMaFit (for matrix completion) and LMaFit-SMS (for sparse matrix separation) are distributed under the terms of the GNU General Public License. [Download Page]