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.
1.4K Downloads
Updated 22 Aug 2017

View License

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.

Cite As

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

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Physics in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
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