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