Friday, September 11, 2009

Spot: A Linear Operator Toolbox

Michael Friedlander and Ewout van der Berg have identified that one of the reason that Sparco was successful is the ability to handle linear operators nicely when used in Compressed Sensing examples. As a result they decided to produce a new Matlab toolbox called Spot. Here is their introductory message:

Dear Colleagues,

We're pleased to announce the first release of the Spot toolbox, which aims to bring the expressiveness of Matlab’s built-in matrix notation to problems for which explicit matrices are not practical. The toolbox is available here:


If you've used the Sparco test problems, you may be familiar with the included linear-operator library used behind the scenes to create the test problems. We've completely rewritten Sparco's operator library using the more modern object-oriented functionality in recent versions of Matlab, and will distribute and maintain it as stand-alone package.


n = 1000; x = (1:n)'; % the first column defines a circulant matrix
F = opDFT(n); % create a DFT operator
s = sqrt(n)*F*x; % eigenvalues of circulant operator
C = real( F'*opDiag(s)*F ); % the circulant operator
w = C*x; % apply C to a vector
y = C'*w; % apply the adjoint of C to a vector
z = C(end:-1:1,:)*y; % reverse the rows of C and apply to a vector
double( C(1:5,1) )' % extract a few elements of the first column
ans =
1 2 3 4 5

If you would like to give the package a whirl, download and unzip the distribution spotbox-1.0p.zip, then add the resulting directory to your path. Use the command "spottests" to make sure that everything is in working order (this command takes about 45 seconds to run on my machine).

We'd be delighted to hear from you if you find the toolbox useful for your own work, and if you have any suggestions or bug reports.

Best,
Michael and Ewout


Thanks Michael and Ewout !

No comments:

Printfriendly