# Matrix Completion.m

(Difference between revisions)
 Revision as of 16:46, 15 February 2009 (edit)← Previous diff Revision as of 23:13, 15 February 2009 (edit) (undo)Next diff → Line 4: Line 4: === test_SVT.m === === test_SVT.m ===

+                                                                % Written by: Emmanuel Candes
+                                                                % Email: emmanuel@acm.caltech.edu
+                                                                % Created: October 2008
+
%% Set path and global variables                                                                   %% Set path and global variables
global SRB                                                                                         global SRB

## Matlab demonstration of Cai, Candès, & Shen

### test_SVT.m

```% Written by: Emmanuel Candes
% Email: emmanuel@acm.caltech.edu
% Created: October 2008

%% Set path and global variables
global SRB
SRB = true;

%% Setup a matrix
randn('state',2008);
rand('state',2008);

n = 1000; r = 10;
M = randn(n,r)*randn(r,n);

df = r*(2*n-r);
oversampling = 5;  m = 5*df;

Omega = randsample(n^2,m);
data = M(Omega);

%% Set parameters and solve

p  = m/n^2;  delta = 1.2/p;
maxiter = 500;
tol = 1e-4;

%% Approximate minimum nuclear norm solution by SVT algorithm

tic
[U,S,V,numiter] = SVT(n,Omega,data,delta,maxiter,tol);
toc

%% Show results

X = U*S*V';

disp(sprintf('The relative error on Omega is: %d ', norm(data-X(Omega))/norm(data)))
disp(sprintf('The relative recovery error is: %d ', norm(M-X,'fro')/norm(M,'fro')))
disp(sprintf('The relative recovery in the spectral norm is: %d ', norm(M-X)/norm(M)))
```