code
Code in MATLAB, written by Emmanuel Candès and Stephen Becker, is available for non-commercial use. The code relies on PROPACK, which is a package for computing the partial SVD of sparse matrices. All necessary PROPACK files are included in the SVT zip file, along with some additional compiled PROPACK binaries that are unavailable on the PROPACK website.
Code may be downloaded here. The zip file (1 MB) contains MATLAB .m files, as well as MATLAB .mex files in the private subdirectory. The .mex files have been compiled into binaries for most common architectures/OS; if your architecture/OS is not supported, please let us know.
Please note: this code is still in beta version, and is not yet well documented. Basic instructions can be obtained by typing help SVT at the MATLAB command line. The only files of importance to the user are SVT.m and Test_SVT.m; the latter file is an example of how to use the code, and also makes sure the code works.
- Download the code (choose SVT_MostRecent.zip for the latest release).
- Changelog, May 19 2009: SVT can now handle complex numbers.
- June 10 2009: we are aware of a bug when using complex numbers and noisy data (a nonzero value of EPS). This will be fixed shortly.
- Oct 2 2009: on some platforms, the PROPACK calculations lost precision, causing the algorithm to fail to converge. We have modified a parameter to force PROPACK to maintain higher accuracy.
Please note: other than the changelog, the only differences in the different zip files are the mex files (i.e. the algorithm is unchanged). We are working to make the compiled mex files compatible with all computers; please contact us if there are problems.