read_rdf.m
来自「含有多种ICA算法的eeglab工具箱」· M 代码 · 共 73 行
M
73 行
% read_RDF() - read RDF-formatted EEG files.%% Usage: % >> [eeg,ev,header] = read_RDF(filename);%% Inputs:% filename - EEG data file in RDF format%% Outputs:% eeg - eeg data (array in size of [chan_no timepoint];% ev - event structure% ev.sample_offset[] - event offsets in samples % from the first sample (0)% ev.event_code[] - event codes (integers)% header - data structure for header information% header.ch_no - number of channels% header.sample_no - number of samples% Notes:%% Authors: Jeng-Ren Duann, CNL/Salk & INC/UCSD, 2002-12-12% with help from Andrey Vankov, creator of the RDF file format.function [eeg,ev,header] = read_RDF(filename) eeg = []; ev = []; header = []; fp = fopen(filename,'rb','ieee-le'); if fp == -1, disp('read_RDF(): Cannot open data file...!'); return; end fseek(fp,6,-1); header.ch_no = fread(fp,1,'uint16'); cnt = 0; ev_cnt = 0; while(~feof(fp)), tag = fread(fp,1,'uint32'); if length(tag) == 0, break; end if tag == hex2dec('f0aa55'), cnt = cnt + 1; disp(['block ' num2str(cnt) ' found']); % read ch_no and block length fseek(fp,2,0); ch_no = fread(fp,1,'uint16'); block_size = power(2,fread(fp,1,'uint16')); % read events fseek(fp,62,0); for i=1:110, samp_off = fread(fp,1,'char'); cond_code = fread(fp,1,'char'); ev_code = fread(fp,1,'uint16'); if samp_off ~= 0, ev_cnt = ev_cnt + 1; ev(ev_cnt).sample_offset = samp_off + (cnt-1)*128; ev(ev_cnt).event_code = ev_code; end end data = fread(fp,ch_no*block_size,'int16'); data = reshape(data,ch_no,block_size); eeg = [eeg data]; end end fclose(fp); header.sample_no = size(eeg,2);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?