1234567891011121314151617181920212223242526272829303132333435 |
- function data=createdatamatpt(data,E,win)
- % Helper function to create an event triggered matrix from a single
- % channel of spike times.
- % Usage: data=createdatamatpt(data,E,win)
- % Inputs:
- % data (input spike times as a structural array or as a column vector) - required
- % E (events to use as triggers) - required
- % win (window around triggers to use data matrix -[winl winr]) - required
- % e.g [1 1] uses a window starting 1 sec before E and
- % ending 1 sec after E if E and data are in secs.
- % Note that E, win and data must have consistent units
- % Outputs:
- % data (event triggered data as a structural array - times are stored
- % relative to the E-winl
- %
- if nargin < 3; error('Need all input arguments'); end;
- if isstruct(data);
- fnames=fieldnames(data);
- eval(['dtmp=data.' fnames{1} ';'])
- else
- dtmp=data(:);
- end;
- NE=length(E);
- winl=win(1);
- winr=win(2);
- data2(1:NE)=struct('times',[]);
- for n=1:NE,
- indx=find(dtmp > E(n)-winl & dtmp<= E(n)+winr);
- if ~isempty(indx)
- data2(n).times=dtmp(indx)-E(n)+winl;
- else
- data2(n).times=[];
- end
- end
- data=data2;
|