www.gusucode.com > emg_functions > emg_functions/classify_online/KLDpredict.m

    %% Betthauser - 2016 --  Compute KLDiv algorithm accuracy from data.  
% INPUTS: Atrain - training data (numF x N)
%         trainlabels - training data labels (1 x N)  
%         Atest - testing data (numF x P)
%         testlabels - testing data labels (1 x P)             
%         
% OUTPUT: [KLDacc, predict] - KLDiv algorithm accuracy, predictions
function [KLDpredict, kldivs] = KLDpredict(trainMeansPDF, trainMax, testsample)
    numClasses = size(trainMeansPDF,2);    
    testsample = testsample./trainMax;
    testsample = testsample / sum(testsample);            
    
     %% KLD                  
    kldivs = ones(numClasses,1);
    minKL = 1e300; % init to impossibly high number                 
    for j = 1:numClasses
        kldivs(j) = KL_divergence(testsample,trainMeansPDF(:,j)); 
        if kldivs(j) < minKL
            minKL = kldivs(j);
            KLDpredict = j;
        end                
    end
end