亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nextspikes.m

?? 神經元信號處理軟件
?? M
字號:
function c=nextspikes(d,outputType,varargin)% nextspikes - reads in spike data (datastream method)% c=nextspikes(datastrn,outputType,varargin) reads in spike data according 
% to outputType spike: spikes (i.e. 64-cell array with spikes on each channel)
% timevalue: times(ms)/values of raw data, eliminating overlapping spike data,
% raw data: spike data filled with zeros to desired raw data array
%
% Optional arguments: start and end time of desired data (up to now times 
% will automatically be aligned with enclosing 128ms-segment borders). If 
% no intervall is choosen, the next segment is given.

%configuration
rawdata=0;
%configuration end

if (strcmp(outputType,'raw data'))
	rawdata=1;
	outputType='timevalue';
end


if (~strcmp(d.DataType,'spike continous'))
%a=setfield(a,'DataType','spike continous');   
	error(['nextspikes up to now works only on spike continous not on ' d.DataType]);
end
if (~strcmp(outputType,'spike') & ~strcmp(outputType,'timevalue'))
	error('second argument must begin with spike, timevalue or raw data');
end

if ~(strcmp(d.fileaccess,'ole')) & (d.sweepStartPointer==0),
	evalin('base','a=setpos(a,''segment'',1)','error(''set position first with a=setpos(a...'')');
	c=0;
	warning('call last function again now (setpos war automatically called)');
	return;
end

channelSel=ones(68,1);
if size(varargin,2)==0		%no intervall choosen, just take next segement
	startSegm=min(find(d.sweepStartPointer>=ftell(d.fid)));
	endSegm	=startSegm+1;	%not to be read!
elseif size(varargin,2)>=2
   startTime=varargin{1};
   endTime	=varargin{2};
   if ~(strcmp(d.fileaccess,'ole'))
      startSegm=max(max(find(d.sweepStartTime<=startTime))-1,1); %begin 1 segment earlier and end 1 later
      endSegm	=min([find(d.sweepStartTime>endTime);length(d.sweepStartTime)])+1; %not to be read!
   end
	if size(varargin,2)==3
		channelSel=zeros(68,1);
		channelSel(varargin{3})=1;
	end
	if size(varargin,2)>3
		error('nextspikes takes 2,4 or 5 parameters');
	end
else error('nextspikes takes 2,4 or 5 parameters');
end

if (strcmp(d.fileaccess,'ole'))
   spikestream=getstreamnumber(d,'Spikes 1');
   if (spikestream > 0) & rawdata
      msPerTick=getfield(d,'MicrosecondsPerTick')/1000;
      sinfo=getfield(d,'StreamInfo');
      pre=sinfo{spikestream}.PreTrigger;
      post=sinfo{spikestream}.PostTrigger; %not used
      ce=zeros(64,(endTime-startTime+post)/msPerTick)+2048;    
      cs=nextdata(d,'streamname','Spikes 1','originorder','off','startend',[startTime endTime],'warning','off');
      for ic=1:64
         spkt=cs.spiketimes{ic};
         spkv=cs.spikevalues{ic};
         for is=1:length(spkt)
            spkstart=max(round((spkt(is)-pre-startTime)/msPerTick),1);
            ce(ic,[spkstart:spkstart+size(spkv,1)-1])=spkv(:,is)';
         end
      end
		c.spiketimes=[];
		c.spikevalues=ce;
      c.startend=[startTime endTime];
      return;
   else   
      error(['nextspikes can only return outputType raw data for OLE-Object read spikes']);
   end
end

nSegments=endSegm-startSegm;
startPointer=d.sweepStartPointer(startSegm);

tmp=d.sorterleft(d.HardwareChannelID);
sortedChannelID=[tmp setdiff([1:68],tmp)]';	%not recorded channel are appended!

nChannels=68;
c=cell(nChannels,2);	   
spikeCount=zeros(nChannels,1);
for i1=1:nChannels
	%highest rate channel defines memory use!
	maxMem=0;
	if channelSel(sortedChannelID(i1))
		maxMem=sum(d.maxSpkPerSegmPerChanl(startSegm:endSegm-1));
	end
	if (strcmp(outputType,'spike'))
		c{i1,1}=zeros(maxMem,1); 				%spiketimes
		c{i1,2}=zeros(maxMem,d.spikeSize);	%spikevalues
	else %timevalue
		c{i1,1}=zeros(maxMem*(d.spikeSize+2),1);	%times
		c{i1,2}=zeros(maxMem*(d.spikeSize+2),1);	%values
	end
end
lastSpikeEnd=ones(68,1)*d.sweepStartTime(startSegm);

fseek(d.fid,startPointer,'bof');
segCount=0;
msPerT=d.MicrosecondsPerTick/1000;
while segCount<nSegments
	segCount=segCount+1;
	timebin = fread(d.fid, [1,2], 'ulong');				% Startzeit des Segments 	sweepStartTime = (timebin(2)*2^32+timebin(1))*msPerT;

	segmentsamples = fread(d.fid,1,'unsigned short');	% no. of samples in segment. 3200 (always)
																		%2 mal? warum?
	timebin = fread(d.fid, [1,2], 'ulong');				% Startzeit des Sweeps (bin鋜)	sweepStartTime = (timebin(2)*2^32+timebin(1))*msPerT;
	segmentsamples = fread(d.fid,1,'unsigned short');	% no. of samples in segment. 3200 (always)
	if segmentsamples ~= 3200
		error('unexpected data-file structure, value segmentsamples2 is not valid (~=3200)')
	end
	lokNChannel = fread(d.fid,1,'unsigned long');					% number of spike lists in segment (immer 64, je Kanal 1)
	if lokNChannel ~= 64
		error('unexpected data-file structure, value nChannels is not valid (~=64)')
	end
	for i1=1:lokNChannel													% 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)
		for i2=1:nSpikes,											% spike number
			%read in spike:
			timebin = fread(d.fid, [1,2], 'ulong');		% Startzeit des Sweeps (bin鋜)
			spiketime = (timebin(2)*2^32+timebin(1))*msPerT;		% reformat to ms 
			ticks_pre_event  = fread(d.fid,1,'unsigned short');	%ticks pre event
			spikeSize  = fread(d.fid,1,'unsigned short');			% window size in ticks, i.e. # of samples in this trace
			tmp= fread(d.fid,[1,spikeSize],'short');	%spikevalues
			if (spikeSize/2==floor(spikeSize/2))
				pFac=0;
			else
				pFac=+1;
			end
			peak = tmp(ticks_pre_event-1+pFac:ticks_pre_event+1+pFac)-d.ZeroADValue;
			if channelSel(sortedChannelID(i1)) & ...
				(~d.BitFlipRemoveFactor | ...
							( abs(peak(2))*d.BitFlipRemoveFactor < abs(peak(1)) ...
								  & abs(peak(2))*d.BitFlipRemoveFactor < abs(peak(3)) ) )	%remove peak if very sharp
				if (strcmp(outputType,'spike'))
					spikeCount(i1)=spikeCount(i1)+1;
					c{sortedChannelID(i1),1}(spikeCount(i1))=spiketime;														%spiketimes
					c{sortedChannelID(i1),2}(spikeCount(i1),1:spikeSize)= tmp;	%spikevalues
				else %timevalue
					spkStartTick=round(((spiketime-d.sweepStartTime(startSegm))/msPerT)-ticks_pre_event+1); %round for heavens sake
					ticksSinceLast=round(((spiketime-lastSpikeEnd(i1))/msPerT)-ticks_pre_event+1); %round for heavens sake
					if ticksSinceLast>2 & spikeCount(i1)>1	 %set two adjacent zero values for drawing!
						c{sortedChannelID(i1),1}(spikeCount(i1)+1)=lastSpikeEnd(i1)+msPerT;
						c{sortedChannelID(i1),2}(spikeCount(i1)+1)=d.ZeroADValue;
						c{sortedChannelID(i1),1}(spikeCount(i1)+2)=d.sweepStartTime(startSegm)+(spkStartTick-1)*msPerT;
						c{sortedChannelID(i1),2}(spikeCount(i1)+2)=d.ZeroADValue;
						spikeCount(i1)=spikeCount(i1)+2;
					end
					if ticksSinceLast<1	
						ticksInPrevSegm=abs(ticksSinceLast)+1;
						spkStartTick=spkStartTick+ticksInPrevSegm;
						tmp=tmp(ticksInPrevSegm+1:spikeSize); %throw away overlap
						spikeSize=spikeSize-ticksInPrevSegm;
					end
					c{sortedChannelID(i1),1}(spikeCount(i1)+1:spikeCount(i1)+spikeSize)= ...
							d.sweepStartTime(startSegm)+[spkStartTick:spkStartTick+spikeSize-1]*msPerT;	%times
					c{sortedChannelID(i1),2}(spikeCount(i1)+1:spikeCount(i1)+spikeSize)= tmp;				%values
					spikeCount(i1)=spikeCount(i1)+spikeSize;
					lastSpikeEnd(i1)=c{sortedChannelID(i1),1}(spikeCount(i1));
				end
			end
		end
	end
end

for i1=1:nChannels
	c{sortedChannelID(i1),1}=c{sortedChannelID(i1),1}(1:spikeCount(i1),:); 	%spiketimes, sized as needed
	c{sortedChannelID(i1),2}=c{sortedChannelID(i1),2}(1:spikeCount(i1),:);	%spikevalues, sized as needed
end

newc.spiketimes={c{:,1}};
newc.spikevalues={c{:,2}};
newc.startend=[(startSegm-1) (endSegm-1)]*128;

if rawdata
	%fill timevalue data with zeros
	minT=startTime;
	maxT=endTime;
	maxTick=ceil((maxT-minT)*1000/d.MicrosecondsPerTick);
	val=zeros(sum(channelSel),maxTick)+d.ZeroADValue;
	count=0;
	for i1=1:nChannels
      if channelSel(i1) 
         count=count+1;
         tmpT=newc.spiketimes{i1};
         minIdx=min(find(tmpT>=minT));
         maxIdx=max(find(tmpT<(maxT-d.MicrosecondsPerTick/1000/2)));
         if ~isempty(minIdx)& ~isempty(maxIdx)
            idxT=round((tmpT-startTime)*1000/d.MicrosecondsPerTick)+1;
            idxT=idxT(minIdx:maxIdx);
            val(count,idxT)=newc.spikevalues{i1}(minIdx:maxIdx)';
         end
      end
   end
	newc.spiketimes=[];
	newc.spikevalues=val;
	newc.startend=[startTime endTime];
end

c=newc;

return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷激情一区二区三区| 亚洲宅男天堂在线观看无病毒| 欧美国产乱子伦 | 中日韩av电影| 日韩亚洲欧美中文三级| 中文字幕一区二区三区四区 | 欧美一级黄色片| 五月婷婷综合激情| 9191久久久久久久久久久| 亚洲一区二区综合| 极品少妇xxxx精品少妇偷拍| 国内精品在线播放| 午夜电影网一区| 日韩欧美一区二区视频| 韩国成人精品a∨在线观看| 欧美一区二区黄| 免费在线观看一区二区三区| 日韩午夜电影av| 国产伦精一区二区三区| 国产精品国产三级国产aⅴ无密码| voyeur盗摄精品| 国产精品盗摄一区二区三区| 国产高清不卡一区| 欧美激情在线看| 国产精品69毛片高清亚洲| 久久亚洲一区二区三区四区| 国产精品白丝av| 中文字幕一区二区三区乱码在线| 在线视频国内自拍亚洲视频| 日韩精品一二区| 中文字幕欧美三区| 色哟哟一区二区在线观看| 亚洲国产精品成人久久综合一区| 国产91丝袜在线观看| 亚洲欧美日本韩国| 欧美日韩视频第一区| 亚洲成人在线观看视频| 国产欧美精品区一区二区三区 | a美女胸又www黄视频久久| 一区二区三区精品视频在线| 91免费看`日韩一区二区| 日韩影院在线观看| 中文字幕一区二区三区不卡| 欧美精选在线播放| 久久成人久久爱| 亚洲线精品一区二区三区| 日韩欧美国产精品一区| 成人福利在线看| 极品少妇xxxx偷拍精品少妇| 日韩一区中文字幕| 欧美一级片在线看| 欧洲精品在线观看| 国产精品综合一区二区三区| 亚洲一区二区三区自拍| 精品88久久久久88久久久| 日本道色综合久久| 九色综合狠狠综合久久| 日韩理论片中文av| 精品国产免费久久| 欧美日韩精品三区| 成人av手机在线观看| 激情深爱一区二区| 午夜久久久久久久久| 日本一区二区视频在线观看| 777色狠狠一区二区三区| 99视频热这里只有精品免费| 日韩综合一区二区| 国产欧美一区二区在线| 一区在线中文字幕| 麻豆精品国产传媒mv男同 | 高清久久久久久| 蜜桃视频第一区免费观看| 中文字幕在线不卡| 亚洲啪啪综合av一区二区三区| 久久婷婷久久一区二区三区| 欧美韩日一区二区三区| 一区二区三区精密机械公司| 日韩精品成人一区二区三区| 奇米四色…亚洲| 波多野结衣精品在线| 欧美性猛交xxxxxx富婆| 久久伊99综合婷婷久久伊| 亚洲男帅同性gay1069| 久久99精品久久久久久久久久久久| 日日夜夜免费精品视频| 国产精品一区二区在线播放| av午夜一区麻豆| 在线不卡中文字幕播放| 国产精品私人影院| 日韩精品国产欧美| 99久久久精品| 欧美tickling网站挠脚心| 中文字幕一区二区三区乱码在线 | 舔着乳尖日韩一区| 国产一区二区三区在线观看免费| 色丁香久综合在线久综合在线观看| 欧美一区二区三区日韩视频| 国产精品视频一二三区| 婷婷亚洲久悠悠色悠在线播放| 激情小说欧美图片| 91美女片黄在线观看| 欧美成人国产一区二区| 亚洲午夜久久久久久久久电影院| 国产精品一区一区三区| 欧美一级专区免费大片| 亚洲国产精品一区二区www在线 | 欧美日韩性生活| 国产欧美日韩亚州综合| 亚洲少妇中出一区| 国产一区二区三区免费| 91精品国产综合久久福利| 亚洲丝袜制服诱惑| 日韩国产在线观看| 91影院在线免费观看| 欧美一区二区视频网站| 亚洲精品免费一二三区| av亚洲精华国产精华精华| 欧美激情综合五月色丁香小说| 日韩电影在线免费| 欧美日韩免费在线视频| 久久天堂av综合合色蜜桃网| 久久91精品久久久久久秒播| 日韩一区二区在线观看视频| 日韩激情中文字幕| 欧洲精品中文字幕| 久久精品亚洲一区二区三区浴池| 日韩国产欧美一区二区三区| 欧美视频在线观看一区| 亚洲成人福利片| 在线综合亚洲欧美在线视频| 麻豆免费看一区二区三区| 欧美性欧美巨大黑白大战| 亚洲精品乱码久久久久久日本蜜臀| 从欧美一区二区三区| 国产精品色在线| 国产高清亚洲一区| 国产精品热久久久久夜色精品三区| 日韩精品欧美精品| 91精品福利在线一区二区三区| 日韩激情av在线| 日韩三级在线免费观看| 国产一区二区91| 欧美日韩一级黄| 国产精品视频观看| 成人免费不卡视频| 久久久噜噜噜久久人人看| 国产精品99精品久久免费| 亚洲国产精品精华液2区45| 91啪在线观看| 日韩av中文字幕一区二区| 欧美一区二区视频在线观看2020| 国产麻豆一精品一av一免费 | 夜夜夜精品看看| 91精品国产aⅴ一区二区| 国产一区二区看久久| 亚洲蜜臀av乱码久久精品蜜桃| 欧美高清hd18日本| 国产精品123| 亚洲第一综合色| 久久久久久夜精品精品免费| 91麻豆.com| 国产资源精品在线观看| 国产精品无人区| 91精品欧美久久久久久动漫| 不卡的av网站| 男人的天堂亚洲一区| 中文字幕亚洲成人| 欧美一区二区三区四区视频| 成人av手机在线观看| 美腿丝袜亚洲综合| 一区二区日韩电影| 国产午夜精品一区二区| av高清久久久| 欧美96一区二区免费视频| 中文一区一区三区高中清不卡| 欧美片在线播放| 北条麻妃一区二区三区| 婷婷国产在线综合| 国产精品美女久久久久久久| 91精品国产综合久久久蜜臀粉嫩 | 亚洲欧美日韩在线不卡| 777色狠狠一区二区三区| www.久久精品| 国产成人精品免费一区二区| 强制捆绑调教一区二区| 亚洲精品国久久99热| 国产日本欧美一区二区| 精品少妇一区二区| 欧美一区二区三区在线视频| 色综合一区二区三区| 成人激情免费视频| 国产iv一区二区三区| 国产精品1024| 国产高清不卡一区二区| 国产乱码一区二区三区| 婷婷成人综合网| 亚洲最新在线观看| 亚洲一区精品在线| 午夜视频一区二区三区| 亚洲黄色小视频|