%function Processed = templev(signals) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This function averages lever data into time bins as requested by user % % Input: Matrix with subjects (or condition/subject) on rows % Sampling rate (Hz) manually % Desired bins of time (s) manually % Output: .dat file with average values per bin per row % % Author: Nicole Prause 3.2.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cnt_folder = char([{'D:\Study_Verena\Raw_Data\'}]); ImportToSPSS=char([{'D:\Study_Verena\Raw_Data\ImportToSPSS.dat'}]); SubjectNumbers=char([{'D:\Study_Verena\Raw_Data\SubjectNumbers.dat'}]); FileList = char('D:\Study_Verena\Raw_Data\'); %format short G Bin = 5; %Time length of bins requested (in s) SRate = 1000; %Sampling rate dlmwrite(ImportToSPSS,''); dlmwrite(SubjectNumbers,''); filename_lst = dir(fullfile(FileList, '*.cnt')); for q=1:length(filename_lst) filename = char(filename_lst(q).name); fprintf ('Running file %s', filename_lst(q).name); filename=strcat(cnt_folder,filename); signals=loadcnt(filename,'dataformat','int32'); data=signals.data; data=data(1:2,:); ProcessingFile=char([{'binning.dat'}]); dlmwrite((strcat(cnt_folder,ProcessingFile)),''); MovieList = []; for i=1:length(signals.event) MovieList=[MovieList,signals.event(i).stimtype]; end MovieList %displays the codes for the movies detected for this subject % for g=1:length(MovieList) %Delete fan events (coded 0) % if MovieList(g)<1 % MovieList(g)=''; % MovieList(g)=''; % elseif length(MovieList)<8 % break % end % end % for g=1:length(MovieList) % if MovieList(g)==255 %Remove any 255 code % MovieList(g)=''; % else % end % end for row = 1:2 signal=data(row,:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Average in bins % 200: Neutral 1 % 201: Neutral 2 % 202: Neutral 3 % 203, 206, 209 Sex alone % 204, 207, 210 Sex with worry statements % 205, 208, 211 Sex with body statements %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CalcBin = Bin*SRate; %Length (in data points) per bin InOrder=[200 201 202 203 206 209 204 207 210 205 208 211]; for Movie=1:length(InOrder) OrderforSubject=find(MovieList==InOrder(Movie)); eval=isempty(OrderforSubject); if eval==0 %seems opposite logic in help file, but skips correctly % OrderforSubject % InOrder(Movie) if (InOrder(Movie)==200) || (InOrder(Movie)==201) || (InOrder(Movie)==202) start=((signals.event(OrderforSubject).offset))+720000; %Take last 3 min of neutral film BinMark = start:CalcBin:(start+(180*SRate)); %Data point for start of each bin display('Neutral') fprintf('Offset %d \n',signals.event(OrderforSubject).offset) elseif (InOrder(Movie)==203) || (InOrder(Movie)==206) || (InOrder(Movie)==209) start=((signals.event(OrderforSubject).offset)); BinMark = start:CalcBin:(start+(180*SRate)); display('SexAlone') fprintf('Offset %d \n',signals.event(OrderforSubject).offset) elseif (InOrder(Movie)==204) || (InOrder(Movie)==207) || (InOrder(Movie)==210) start=((signals.event(OrderforSubject).offset)); BinMark = start:CalcBin:(start+(180*SRate)); display('Worry') fprintf('Offset %d \n',signals.event(OrderforSubject).offset) elseif (InOrder(Movie)==205) || (InOrder(Movie)==208) || (InOrder(Movie)==211) start=((signals.event(OrderforSubject).offset)); BinMark = start:CalcBin:(start+(180*SRate)); display('Body') fprintf('Offset %d \n',signals.event(OrderforSubject).offset) else end for j=2:length(BinMark) Avg = mean(signal(1,BinMark(j-1):BinMark(j))); dlmwrite((strcat(cnt_folder,ProcessingFile)), Avg, '-append') end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Load the processed data to export for MatLab %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end load D:\Study_Verena\Raw_Data\binning.dat; %Need to fix to update with header specs binning=binning'; [pathstr, name, ext, versn] = fileparts(filename); dlmwrite(ImportToSPSS, binning, '-append') dlmwrite(SubjectNumbers, name,'-append','delimiter','') end %end