📄 getfileindexspikes.m
字号:
function a=getfileindexspikes(d)
% getfileindexspikes - get the file indexes of all segments (datastrm method)
%
% Usage:
% a=getfileindexspikes(d)
error('getfileindexspikes code is now in MEX file GetFileEntries');
disp('segment indexes are needed for the first time and are now read');
drawnow;
fseek(d.fid,d.offset_to_data,-1);
i=0;
segmentPointer=zeros(56250,1); %enough for 2 hours
segmentStartTime=zeros(56250,1);
maxSpkPerSegmPerChanl=zeros(56250,1);
nPointsPerSegement=zeros(56250,1);
while ftell(d.fid)<d.filesize
i=i+1;
segmentPointer(i)=ftell(d.fid);
timebin = fread(d.fid, [1,2], 'ulong'); % Startzeit des Sweeps (bin鋜)
sweepStartTime = (timebin(2)*2^32+timebin(1))*d.MicrosecondsPerTick/1000;
segmentsamples = fread(d.fid,1,'unsigned short'); % no. of samples in segment. 3200 (always)
timebin = fread(d.fid, [1,2], 'ulong'); % Startzeit des Sweeps (bin鋜)
segmentStartTime(i) = (timebin(2)*2^32+timebin(1))*d.MicrosecondsPerTick/1000;
segmentsamples = fread(d.fid,1,'unsigned short'); % no. of samples in segment. 3200 (always)
if segmentsamples ~= 3200
error('unexpected data-file structure, value segmentsamples is not valid (~=3200)')
end;
nChannels = fread(d.fid,1,'unsigned long'); % number of spike lists in segment (immer 64, je Kanal 1)
if nChannels ~= 64
error('unexpected data-file structure, value end1 is not valid (~=64)')
end;
for i1=1:nChannels % Kanal nummer (0-63) in der ausgew鋒lten Reihenfolge,
%read in spike list also gew鋒lte Kan鋖e zuerst, dann alle nicht gew鋒lten mit Eintr鋑en von 0 Spikes!!!
nSpikes = fread(d.fid,1,'unsigned long'); % number of spikes in list (i.e. spikes auf diesem Kanal in diesem Segment)
if nSpikes>0
timebin = fread(d.fid, [1,2], 'ulong');
d.ticks_pre_event = fread(d.fid,1,'unsigned short'); %ticks pre event
d.spikeSize = fread(d.fid,1,'unsigned short'); % window size in ticks, i.e. # of samples in this trace
fseek(d.fid,nSpikes*(d.spikeSize*2)+(nSpikes-1)*(8+2+2),0);
if (nSpikes>maxSpkPerSegmPerChanl(i))
maxSpkPerSegmPerChanl(i)=nSpikes;
end;
nPointsPerSegement(i) = nPointsPerSegement(i) + nSpikes*d.spikeSize;
end;
end;
end;
d.sweepStartTime = segmentStartTime(1:i);
d.sweepStartPointer = segmentPointer(1:i);
d.maxSpkPerSegmPerChanl = maxSpkPerSegmPerChanl(1:i);
d.nPointsPerSegement = nPointsPerSegement(1:i);
fseek(d.fid,d.offset_to_data,-1);
a=d;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -