annotate toolboxes/wrapper_ALPS_toolbox.m @ 154:0de08f68256b ivand_dev

ALPS toolbox - Algebraic Pursuit added to smallbox
author Ivan Damnjanovic lnx <ivan.damnjanovic@eecs.qmul.ac.uk>
date Fri, 12 Aug 2011 11:17:47 +0100
parents
children
rev   line source
ivan@154 1 function [x , numiter, time, x_path] = wrapper_ALPS_toolbox(b, A, param)
ivan@154 2 %% SMALL wrapper for ALPS toolbox
ivan@154 3 %
ivan@154 4 % Function gets as input
ivan@154 5 % b - measurement vector
ivan@154 6 % A - dictionary
ivan@154 7 % K - desired sparsity level
ivan@154 8 % param - structure containing additional parameters
ivan@154 9 % Output:
ivan@154 10 % x - sparse solution
ivan@154 11 % numiter - number of iterations
ivan@154 12 % time - time needed to solve the problem#
ivan@154 13 % x_path - matrix containing x after every iteration
ivan@154 14
ivan@154 15 % Centre for Digital Music, Queen Mary, University of London.
ivan@154 16 % This file copyright 2011 Ivan Damnjanovic.
ivan@154 17 %
ivan@154 18 % This program is free software; you can redistribute it and/or
ivan@154 19 % modify it under the terms of the GNU General Public License as
ivan@154 20 % published by the Free Software Foundation; either version 2 of the
ivan@154 21 % License, or (at your option) any later version. See the file
ivan@154 22 % COPYING included with this distribution for more information.
ivan@154 23 %
ivan@154 24 %%
ivan@154 25
ivan@154 26 if isfield(param, 'sparsity')
ivan@154 27 sparsity = param.sparsity;
ivan@154 28 else
ivan@154 29 printf('\nAlebraic Pursuit algorithms require desired sparsity level.\n("sparsity" field in solver parameters structure)\n ');
ivan@154 30 return
ivan@154 31 end
ivan@154 32
ivan@154 33 if isfield(param, 'memory')
ivan@154 34 memory = param.memory;
ivan@154 35 else
ivan@154 36 memory = 0;
ivan@154 37 end
ivan@154 38
ivan@154 39 if isfield(param, 'mode')
ivan@154 40 mode = param.mode;
ivan@154 41 else
ivan@154 42 mode = 0;
ivan@154 43 end
ivan@154 44 if isfield(param, 'tolerance')
ivan@154 45 tolerance = param.tolerance;
ivan@154 46 else
ivan@154 47 tolerance = 1e-5;
ivan@154 48 end
ivan@154 49 if isfield(param, 'iternum')
ivan@154 50 iternum = param.iternum;
ivan@154 51 else
ivan@154 52 iternum = 300;
ivan@154 53 end
ivan@154 54 if isfield(param, 'verbose')
ivan@154 55 verbose = param.verbose;
ivan@154 56 else
ivan@154 57 verbose = 0;
ivan@154 58 end
ivan@154 59 if isfield(param, 'tau')
ivan@154 60 tau = param.tau;
ivan@154 61 else
ivan@154 62 tau = 1/2;
ivan@154 63 end
ivan@154 64 if isfield(param, 'useCG')
ivan@154 65 useCG = param.useCG;
ivan@154 66 else
ivan@154 67 useCG = 0;
ivan@154 68 end
ivan@154 69 if isfield(param, 'mu')
ivan@154 70 mu = param.mu;
ivan@154 71 else
ivan@154 72 mu = 0;
ivan@154 73 end
ivan@154 74 training_size = size(b,2);
ivan@154 75 x=zeros(size(A,2),training_size);
ivan@154 76 for i = 1:training_size
ivan@154 77 [x(:,i), numiter, time, x_path] = AlgebraicPursuit(b(:,i), A, sparsity, 'memory', memory,...
ivan@154 78 'mode', mode, 'tolerance', tolerance, 'ALPSiterations', iternum, ...
ivan@154 79 'verbose', verbose, 'tau', tau, 'useCG', useCG, 'mu', mu);
ivan@154 80 end