-
Notifications
You must be signed in to change notification settings - Fork 2
/
get_spikes.m
36 lines (30 loc) · 1.03 KB
/
get_spikes.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function varargout = get_spikes(varargin)
% GET_SPIKES extract variables per neuron per lap
%
% [spk, spk_lap] = get_spikes(clusters, Spike, laps)
% If more inputs ar provided, then
% [spk, spk_lap, X, X_lap] = get_spikes(clusters, Spike, laps, X)
clusters = varargin{1};
spikes = varargin{2};
laps = varargin{3};
exVars = 0;
if nargin>3; exVars = nargin - 3; end
for j=1:max(clusters) %for each neuron
spk_per_neuron{j} = spikes(clusters==j);
for v = 1 : exVars
eval(['aux' num2str(v) '{j} = varargin{v+3}(clusters==j);']);
end
for k=1:length(laps)-1 % for each lap
index = spk_per_neuron{j}>=laps(k) & spk_per_neuron{j}<laps(k+1);
spk_per_lap{k,j} = spk_per_neuron{j}(index);
for v = 1 : exVars
eval(['aux_lap' num2str(v) '{k,j} = aux' num2str(v) '{j}(index);']);
end
end
end
varargout{1} = spk_per_neuron;
varargout{2} = spk_per_lap;
for v = 1 : exVars
varargout{2 + v} = eval(['aux' num2str(v)]);
varargout{2 + exVars + v} = eval(['aux_lap' num2str(v)]);
end