Matrix completion using nuclear norm, spectral norm or weighted nuclear norm minimization.

Completes a matrix with missing entries, such that the obtained matrix has minimal norm.

Sie verfolgen jetzt diese Einreichung

Completes a matrix with missing entries, such that the obtained matrix has minimal norm.
Usage:
[CompletedMat, ier] = MatrixCompletion(A.*B, B,N, mode, lambda_tol, tol, display);
A - matrix to complete
B - binary matrix indicates values or missing entries in A (same size, 1 - known value, 0 - missing value)
N - number of iterations
mode - working mode: can be 'nuclear', 'spectral'
lambda_tol - tolerance value from the nuclear/spectral norm minimal value
tol - tolerance on the known entries
Output:
CompletedMat - completed matrix
ier - error indicator: 0 - OK, 1 - Failed to converge (probably needs more iterations).
For a demonstration, run demo.m
The code is based on the paper:
G. Shabat, A. Averbuch "Interest Zone Matrix Approximation", Electronic journal of Linear Algebra, Vol. 23(1), 2012.

Note: The package contains other useful code such as approximating a matrix under different constraints by taking all of it into account or just part of its entries.

Zitieren als

Gil Shabat (2026). Matrix completion using nuclear norm, spectral norm or weighted nuclear norm minimization. (https://de.mathworks.com/matlabcentral/fileexchange/50056-matrix-completion-using-nuclear-norm-spectral-norm-or-weighted-nuclear-norm-minimization), MATLAB Central File Exchange. Abgerufen .

Allgemeine Informationen

Kompatibilität der MATLAB-Version

  • Kompatibel mit allen Versionen

Plattform-Kompatibilität

  • Windows
  • macOS
  • Linux
Version Veröffentlicht Versionshinweise Action
2.0.0.0

1) demo.m fixed according to comments
2) For nuclear norm minimization, optimization toolbox is not needed. Solved without quadratic programming, make sure to compile the mex file (run compile.m)
Following updates:
1) demo.m is now fixed according to the comment below.
2) For nuclear norm minimization, the optimization toolbox is no longer needed. It is done without quadratic programming, you need to compile the mex file (run compile.m)

1.1.0.0

Description slightly modified.

1.0.0.0