Mercurial > hg > smallbox
diff config/SMALL_learn_config.m @ 224:fd0b5d36f6ad danieleb
Updated the contents of this branch with the contents of the default branch.
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Thu, 12 Apr 2012 13:52:28 +0100 |
parents | 751fa3bddd30 |
children | 198d4d9cee74 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config/SMALL_learn_config.m Thu Apr 12 13:52:28 2012 +0100 @@ -0,0 +1,97 @@ +%% Configuration file used in SMALL_learn +% +% Use this file to change the dictionary learning algorithms in SMALLBox +% Please refer to the documentation before editing this file + +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2009 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% +%% + +if strcmpi(DL.toolbox,'KSVD') + param=DL.param; + param.data=Problem.b; + + D = eval([DL.name,'(param)']);%, ''t'', 5);']); +elseif strcmpi(DL.toolbox,'KSVDS') + param=DL.param; + param.data=Problem.b; + + D = eval([DL.name,'(param, ''t'', 5);']); +elseif strcmpi(DL.toolbox,'SPAMS') + + X = Problem.b; + param=DL.param; + + D = eval([DL.name,'(X, param);']); + % As some versions of SPAMS does not produce unit norm column + % dictionaries, we need to make sure that columns are normalised to + % unit lenght. + + for i = 1: size(D,2) + D(:,i)=D(:,i)/norm(D(:,i)); + end +elseif strcmpi(DL.toolbox,'SMALL') + + X = Problem.b; + param=DL.param; + + D = eval([DL.name,'(X, param);']); + % we need to make sure that columns are normalised to + % unit lenght. + + for i = 1: size(D,2) + D(:,i)=D(:,i)/norm(D(:,i)); + end + +elseif strcmpi(DL.toolbox,'TwoStepDL') + + DL=SMALL_two_step_DL(Problem, DL); + + % we need to make sure that columns are normalised to + % unit lenght. + + for i = 1: size(DL.D,2) + DL.D(:,i)=DL.D(:,i)/norm(DL.D(:,i)); + end + D = DL.D; + +elseif strcmpi(DL.toolbox,'MMbox') + + DL = wrapper_mm_DL(Problem, DL); + + % we need to make sure that columns are normalised to + % unit lenght. + + for i = 1: size(DL.D,2) + DL.D(:,i)=DL.D(:,i)/norm(DL.D(:,i)); + end + D = DL.D; + +% To introduce new dictionary learning technique put the files in +% your Matlab path. Next, unique name <TolboxID> for your toolbox needs +% to be defined and also prefferd API for toolbox functions <Preffered_API> +% +% elseif strcmpi(DL.toolbox,'<ToolboxID>') +% % This is an example of API that can be used: +% % - get training set from Problem part of structure +% % - assign parameters defined in the main program +% +% X = Problem.b; +% param=DL.param; +% +% % - Evaluate the function (DL.name - defined in the main) with +% % parameters given above +% +% D = eval([DL.name,'(<Preffered_API>);']); + +else + printf('\nToolbox has not been registered. Please change SMALL_learn file.\n'); + return +end