Home > chronux > spectral_analysis > pointtimes > binspikes.m

# binspikes

## PURPOSE bin spikes at a specified frequency sampling i.e. sampling rate 1/sampling

## SYNOPSIS function [dN,t]=binspikes(data,Fs,t)

## DESCRIPTION ``` bin spikes at a specified frequency sampling i.e. sampling rate 1/sampling
eg: 1ms accuracy use sampling = 1000
Usage: [dN,t]=binspikes(data,Fs,t)
Inputs:
data   (data as a structure array of spike times; or as a single
vector of spike times)
Fs     (binning frequency)
t      (the minimum and maximum times to be used to form the bins - [mint maxt]
- optional. Default use the spike times themselves to
determine the location of the bins.
Note: the times in data can be in any units. However, it is important
that all units are chosen consistently. So, if spike times are in secs,
Fs and t (if present) have to be in Hz and secs respectively. If spike
times are in number of samples, Fs has to be 1, and t has to be in number
of samples.
Outputs:
dN     (output binned spike counts as a matrix defined on bins starting with the
earliest spike across all channels and ending with the latest spike)
t      (lower limit of each bin)```

## CROSS-REFERENCE INFORMATION This function calls:
This function is called by:

## SOURCE CODE ```0001 function [dN,t]=binspikes(data,Fs,t)
0002 % bin spikes at a specified frequency sampling i.e. sampling rate 1/sampling
0003 % eg: 1ms accuracy use sampling = 1000
0004 % Usage: [dN,t]=binspikes(data,Fs,t)
0005 % Inputs:
0006 % data   (data as a structure array of spike times; or as a single
0007 %        vector of spike times)
0008 % Fs     (binning frequency)
0009 % t      (the minimum and maximum times to be used to form the bins - [mint maxt]
0010 %            - optional. Default use the spike times themselves to
0011 %              determine the location of the bins.
0012 % Note: the times in data can be in any units. However, it is important
0013 % that all units are chosen consistently. So, if spike times are in secs,
0014 % Fs and t (if present) have to be in Hz and secs respectively. If spike
0015 % times are in number of samples, Fs has to be 1, and t has to be in number
0016 % of samples.
0017 % Outputs:
0018 % dN     (output binned spike counts as a matrix defined on bins starting with the
0019 %         earliest spike across all channels and ending with the latest spike)
0020 % t      (lower limit of each bin)
0021 if nargin < 2; error('Need at least two input arguments'); end;
0022 dt=1/Fs;
0023 dtmp='';
0024 if isstruct(data);
0025    C=length(data);
0026    fnames=fieldnames(data);
0027    if nargin <3 || isempty(t);
0028        mintime=zeros(1,C);
0029        maxtime=zeros(1,C);
0030        for ch=1:C
0031          eval(['dtmp=data(ch).' fnames{1} ';'])
0032          mintime(ch)=min(dtmp);
0033          maxtime(ch)=max(dtmp);
0034        end
0035        mintime=min(mintime);
0036        maxtime=max(maxtime);
0037    else
0038 %        maxtimech=zeros(1,C);
0039 %        for ch=1:C
0040 %          eval(['dtmp=data(ch).' fnames{1} ';'])
0041 % %          mintimech(ch)=min(dtmp);
0042 %          maxtimech(ch)=max(dtmp);
0043 %        end
0044        mintime=t(1);
0045        maxtime=t(end);
0046 %        mintimech=min(mintimech);
0047 %        maxtimech=max(maxtimech);
0048 %        if maxtimech > max(t); t=[t maxtimech+dt]; end;
0049    end
0050    t=linspace(mintime,maxtime,1+(maxtime-mintime)/dt);
0051    for ch=1:C;
0052        eval(['dtmp=data(ch).' fnames{1} ';'])
0053        x=histc(dtmp,t);
0054        dN(:,ch)=x(:);
0055    end
0056 else
0057    dtmp=data;
0058    if nargin < 3;
0059       mintime=min(dtmp);
0060       maxtime=max(dtmp);
0061    else
0062       mintime=t(1);
0063       maxtime=t(end);
0064    end
0065    t=linspace(mintime,maxtime,1+(maxtime-mintime)/dt);
0066    if max(dtmp)>max(t); t=[t maxtime+dt]; end;
0067    x=histc(dtmp,t);
0068    dN=x(:);
0069 end```

Generated on Fri 28-Sep-2012 12:34:30 by m2html © 2005