-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgetSaccMtx.m
29 lines (22 loc) · 1013 Bytes
/
getSaccMtx.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
function saccade = getSaccMtx(t_r, startSacc, endSacc, eyeData_cat, cardinalDir)
%returns [direction x time]
[~, dirIndex] = getSaccDir(startSacc, endSacc, eyeData_cat, cardinalDir);
[~, startSaccTidx] = arrayfun(@(x)(min(abs(t_r - x))), startSacc);
[~, endSaccTidx] = arrayfun(@(x)(min(abs(t_r - x))), endSacc);
%if start time = end time, delay the end time one time bin
[sameTime] = find(endSaccTidx == startSaccTidx);
endSaccTidx(sameTime) = endSaccTidx(sameTime)+1;
endSaccTidx(endSaccTidx>length(t_r)) = length(t_r);
saccade = zeros(length(cardinalDir),length(t_r));
% for isacc = 1:length(dirIndex)
% saccade(dirIndex(isacc),startSaccTidx(isacc):endSaccTidx(isacc)) = 1;
% end
for idir = 1:length(cardinalDir)
theseSaccs = find(dirIndex == idir);
onTrace = zeros(length(t_r),1);
onTrace(startSaccTidx(theseSaccs))=1;
offTrace = zeros(length(t_r),1);
offTrace(endSaccTidx(theseSaccs))=1;
thisTrace = cumsum(onTrace) - cumsum(offTrace);
saccade(idir,:) = thisTrace;
end