Code covered by the BSD License  

Highlights from
Toolbox Sparse Optmization

from Toolbox Sparse Optmization by Gabriel Peyre
Optimization codes for sparsity related signal processing

compute_correlation_error(Historic,fSolution, Gmat,F,q)
function [err,ratio] = compute_correlation_error(Historic,fSolution, Gmat,F,q)

H = Historic./repmat(sqrt(sum(Historic.^2)), [length(fSolution) 1]);
S = repmat(fSolution, [1 size(Historic, 2)])/norm(fSolution);
err = 1 - sum(S.*H);
err = err(:);

ratio = [];
if nargin>2
    p = size(Gmat,1)/q;
    G  = @(f)reshape(Gmat*f, [p q]);
    Amplitude = @(u)sqrt(sum(u.^2,2));
    E = @(u)sum(Amplitude(u),1);
    J = @(f)E(G(f));
    R = @(f)-sum(F(:).*f) / J(f);
    r0 = R(fSolution);
    for i=1:size(Historic,2)
        progressbar(i,size(Historic,2));
        ratio(end+1) = R(Historic(:,i)) - r0;
    end
    ratio = ratio(:);
end

Contact us at files@mathworks.com