rmeddis@23: function [PSTH ]=UTIL_PSTHmakerb(inputData, dt, PSTHbinWidth) rmeddis@23: % UTIL_PSTHmakerb averages mean values into bins. rmeddis@23: % No corrections are applied rmeddis@23: % usage: rmeddis@23: % PSTH=UTIL_PSTHmaker(inputData, method) rmeddis@23: % rmeddis@23: % arguments rmeddis@23: % inputData is a channel x time matrix rmeddis@23: % PSTH is the reduced matrix, the sum of all elements in the bin rmeddis@23: % rmeddis@23: rmeddis@23: [numChannels numDataPoints]= size(inputData); rmeddis@23: rmeddis@23: % Multiple fibers is the same as repeat trials rmeddis@23: % Consolidate data into a histogram rmeddis@23: dataPointsPerBin=round(PSTHbinWidth/dt); rmeddis@23: if dataPointsPerBin<=1; rmeddis@23: % Too few data points rmeddis@23: PSTH=inputData; rmeddis@23: return rmeddis@23: end rmeddis@23: rmeddis@23: numBins=floor(numDataPoints/dataPointsPerBin); rmeddis@23: PSTH=zeros(numChannels,numBins); rmeddis@23: rmeddis@23: % take care that signal length is an integer multiple of bin size rmeddis@23: % by dropping the last unuseable values rmeddis@23: useableDataLength=numBins*dataPointsPerBin; rmeddis@23: inputData=inputData(:,1:useableDataLength); rmeddis@23: rmeddis@23: for ch=1:numChannels rmeddis@23: % Convert each channel into a matrix where each column represents rmeddis@23: % the content of a single PSTH bin rmeddis@23: PSTH2D=reshape (inputData(ch,:), dataPointsPerBin, numBins ); rmeddis@23: % and sum within each bin (across the rows rmeddis@23: PSTH(ch,:)=mean (PSTH2D,1); rmeddis@23: end