Home > . > makeMSFProj.m

makeMSFProj

PURPOSE ^

%% features = makeMSFProj(trials,CV)

SYNOPSIS ^

function features = makeMSFProj(trials,CV,command)

DESCRIPTION ^

%%  features = makeMSFProj(trials,CV)
%%   trials: ntasks x ntrials cell array of data
%%   CV.parms contains
%%           .nlags
%%           .winSize
%%           .winShift
%%   features: ntasks x ntrials cell array of featurized data

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function features = makeMSFProj(trials,CV,command)
0002 %%%  features = makeMSFProj(trials,CV)
0003 %%%   trials: ntasks x ntrials cell array of data
0004 %%%   CV.parms contains
0005 %%%           .nlags
0006 %%%           .winSize
0007 %%%           .winShift
0008 %%%   features: ntasks x ntrials cell array of featurized data
0009 
0010 if nargin > 2 && strcmp(command,'make')
0011   lagged = lagize(trials,CV.parms.nlags);
0012   allData = [];
0013   [r,c] = size(trials);
0014   for ri = 1:r
0015     for ci = 1:c
0016       allData = [allData lagged{ri,ci}];
0017     end
0018   end
0019 
0020   if CV.parms.meanSubtract
0021     means = mean(allData,2);
0022     allData = allData - repmat(means,1,size(allData,2));
0023     CV.parms.means = means;
0024   else
0025     CV.parms.means = [];
0026   end    
0027 
0028   [u,s] = mnf2(allData);
0029   u = s';
0030   CV.parms.basis = u;
0031 
0032   features = CV;
0033 
0034 else
0035 
0036   nlags = CV.parms.nlags;
0037   basis = CV.parms.basis;
0038   lagged = lagize(trials,nlags);
0039   
0040   [r,c] = size(trials);
0041   for ri = 1:r
0042     for ci = 1:c
0043       if CV.parms.meanSubtract
0044     d = lagged{ri,ci} - repmat(CV.parms.means,1,size(lagged{ri,ci},2));
0045       else
0046     d = lagged{ri,ci};
0047       end
0048       features{ri,ci} = basis' * d;
0049     end
0050   end
0051 
0052 end

Generated on Tue 07-Feb-2006 12:02:57 by m2html © 2003