⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadcnt.m

📁 含有多种ICA算法的eeglab工具箱
💻 M
📖 第 1 页 / 共 2 页
字号:
h.fspp2             = fread(fid,1,'ushort');h.fspalpha          = fread(fid,1,'float');h.fspnoise          = fread(fid,1,'float');h.fspv1             = fread(fid,1,'short');h.montage           = fread(fid,40,'char');h.eventfile         = fread(fid,40,'char');h.fratio            = fread(fid,1,'float');h.minor_rev         = fread(fid,1,'char');h.eegupdate         = fread(fid,1,'short');h.compressed        = fread(fid,1,'char');h.xscale            = fread(fid,1,'float');h.yscale            = fread(fid,1,'float');h.xsize             = fread(fid,1,'float');h.ysize             = fread(fid,1,'float');h.acmode            = fread(fid,1,'char');h.commonchnl        = fread(fid,1,'uchar');h.xtics             = fread(fid,1,'char');h.xrange            = fread(fid,1,'char');h.ytics             = fread(fid,1,'char');h.yrange            = fread(fid,1,'char');h.xscalevalue       = fread(fid,1,'float');h.xscaleinterval    = fread(fid,1,'float');h.yscalevalue       = fread(fid,1,'float');h.yscaleinterval    = fread(fid,1,'float');h.scaletoolx1       = fread(fid,1,'float');h.scaletooly1       = fread(fid,1,'float');h.scaletoolx2       = fread(fid,1,'float');h.scaletooly2       = fread(fid,1,'float');h.port              = fread(fid,1,'short');h.numsamples        = fread(fid,1,'ulong');h.filterflag        = fread(fid,1,'char');h.lowcutoff         = fread(fid,1,'float');h.lowpoles          = fread(fid,1,'short');h.highcutoff        = fread(fid,1,'float');h.highpoles         = fread(fid,1,'short');h.filtertype        = fread(fid,1,'char');h.filterdomain      = fread(fid,1,'char');h.snrflag           = fread(fid,1,'char');h.coherenceflag     = fread(fid,1,'char');h.continuoustype    = fread(fid,1,'char');h.eventtablepos     = fread(fid,1,'long');h.continuousseconds = fread(fid,1,'float');h.channeloffset     = fread(fid,1,'long');h.autocorrectflag   = fread(fid,1,'char');h.dcthreshold       = fread(fid,1,'uchar');for n = 1:h.nchannels    e(n).lab            = deblank(char(fread(fid,10,'char')'));    e(n).reference      = fread(fid,1,'char');    e(n).skip           = fread(fid,1,'char');    e(n).reject         = fread(fid,1,'char');    e(n).display        = fread(fid,1,'char');    e(n).bad            = fread(fid,1,'char');    e(n).n              = fread(fid,1,'ushort');    e(n).avg_reference  = fread(fid,1,'char');    e(n).clipadd        = fread(fid,1,'char');    e(n).x_coord        = fread(fid,1,'float');    e(n).y_coord        = fread(fid,1,'float');    e(n).veog_wt        = fread(fid,1,'float');    e(n).veog_std       = fread(fid,1,'float');    e(n).snr            = fread(fid,1,'float');    e(n).heog_wt        = fread(fid,1,'float');    e(n).heog_std       = fread(fid,1,'float');    e(n).baseline       = fread(fid,1,'short');    e(n).filtered       = fread(fid,1,'char');    e(n).fsp            = fread(fid,1,'char');    e(n).aux1_wt        = fread(fid,1,'float');    e(n).aux1_std       = fread(fid,1,'float');    e(n).senstivity     = fread(fid,1,'float');    e(n).gain           = fread(fid,1,'char');    e(n).hipass         = fread(fid,1,'char');    e(n).lopass         = fread(fid,1,'char');    e(n).page           = fread(fid,1,'uchar');    e(n).size           = fread(fid,1,'uchar');    e(n).impedance      = fread(fid,1,'uchar');    e(n).physicalchnl   = fread(fid,1,'uchar');    e(n).rectify        = fread(fid,1,'char');    e(n).calib          = fread(fid,1,'float');end% finding if 32-bits of 16-bits file% ----------------------------------begdata = ftell(fid);enddata = h.eventtablepos;   % after dataif strcmpi(r.dataformat, 'int16')     nums    = (enddata-begdata)/h.nchannels/2;else nums    = (enddata-begdata)/h.nchannels/4;end;% number of sample to read% ------------------------if ~isempty(r.sample1)   r.t1      = r.sample1/h.rate;else    r.sample1 = r.t1*h.rate;end;if strcmpi(r.dataformat, 'int16')     startpos = r.t1*h.rate*2*h.nchannels;else startpos = r.t1*h.rate*4*h.nchannels;end;if isempty(r.ldnsamples)     if ~isempty(r.lddur)          r.ldnsamples = round(r.lddur*h.rate);      else r.ldnsamples = nums;      end;end;% channel offset% --------------if ~isempty(r.blockread)    h.channeloffset = r.blockread;end;if h.channeloffset > 1    fprintf('WARNING: reading data in blocks of %d, if this fails, try using option "''blockread'', 1"\n', ...            h.channeloffset);end;disp('Reading data .....')if type == 'cnt'         % while (ftell(fid) +1 < h.eventtablepos)      %d(:,i)=fread(fid,h.nchannels,'int16');      %end      fseek(fid, startpos, 0);	  if h.channeloffset <= 1      	  dat=fread(fid, [h.nchannels r.ldnsamples], r.dataformat); 	  else          h.channeloffset = h.channeloffset/2;          % reading data in blocks     	  dat = zeros( h.nchannels, r.ldnsamples);      	  dat(:, 1:h.channeloffset) = fread(fid, [h.channeloffset h.nchannels], r.dataformat)';		  counter = 1;	 		  while counter*h.channeloffset < r.ldnsamples              dat(:, counter*h.channeloffset+1:counter*h.channeloffset+h.channeloffset) = ...                  fread(fid, [h.channeloffset h.nchannels], r.dataformat)';              counter = counter + 1;		  end;	  end;	            %ftell(fid)      if strcmpi(r.scale, 'on')          disp('Scaling data .....')          %%% scaling to microvolts          for i=1:h.nchannels              bas=e(i).baseline;sen=e(i).senstivity;cal=e(i).calib;              mf=sen*(cal/204.8);              dat(i,:)=(dat(i,:)-bas).*mf;          end      end                 fseek(fid, h.eventtablepos, 'bof');            disp('Reading Event Table...')      eT.teeg   = fread(fid,1,'uchar');      eT.size   = fread(fid,1,'ulong');      eT.offset = fread(fid,1,'ulong');            if eT.teeg==2          nevents=eT.size/sizeEvent2;          if nevents > 0              ev2(nevents).stimtype  = [];              for i=1:nevents                  ev2(i).stimtype      = fread(fid,1,'ushort');                  ev2(i).keyboard      = fread(fid,1,'char');                  ev2(i).keypad_accept = fread(fid,1,'char');                  ev2(i).offset        = fread(fid,1,'long');                  ev2(i).type          = fread(fid,1,'short');                   ev2(i).code          = fread(fid,1,'short');                  ev2(i).latency       = fread(fid,1,'float');                  ev2(i).epochevent    = fread(fid,1,'char');                  ev2(i).accept        = fread(fid,1,'char');                  ev2(i).accuracy      = fread(fid,1,'char');              end               else              ev2 = [];          end;      elseif eT.teeg==1          nevents=eT.size/sizeEvent1;          if nevents > 0              ev2(nevents).stimtype  = [];              for i=1:nevents                  ev2(i).stimtype      = fread(fid,1,'ushort');                  ev2(i).keyboard      = fread(fid,1,'char');                  ev2(i).keypad_accept = fread(fid,1,'char');                  ev2(i).offset        = fread(fid,1,'long');              end;          else              ev2 = [];          end;     else          disp('Skipping event table (tag != 1,2 ; theoritically impossible)');          ev2 = [];      end     end fseek(fid, -1, 'eof');t = fread(fid,'char');f.header   = h;f.electloc = e;f.data     = dat;f.Teeg     = eT;f.event    = ev2;f.tag=t;%%%% channels labelsfor i=1:h.nchannels  plab=sprintf('%c',f.electloc(i).lab);  if i>1    lab=str2mat(lab,plab);  else    lab=plab;    end  end  %%%% to change offest in bytes to points if ~isempty(ev2)    ev2p=ev2;     ioff=900+(h.nchannels*75); %% initial offset : header + electordes desc     if strcmpi(r.dataformat, 'int16')        for i=1:nevents             ev2p(i).offset=(ev2p(i).offset-ioff)/(2*h.nchannels) - r.sample1; %% 2 short int end         end         else % 32 bits        for i=1:nevents             ev2p(i).offset=(ev2p(i).offset-ioff)/(4*h.nchannels) - r.sample1; %% 4 short int end         end         end;            f.event = ev2p;end;frewind(fid);fclose(fid);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -