📄 readepochs.m
字号:
function [data,ctf]=readepochs(folder,varargin);
%
%
%
% <>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> %
% < > %
% < DISCLAIMER: > %
% < > %
% < THIS PROGRAM IS INTENDED FOR RESEARCH PURPOSES ONLY. > %
% < THIS PROGRAM IS IN NO WAY INTENDED FOR CLINICAL OR > %
% < OFFICIAL USE. > %
% < > %
% <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<> %
%
%
%
% function to read set time windows (epochs) around event markers.
%
for i = 1:size(varargin,2)
if ischar(varargin{i})
switch varargin{i}
case 'marker_info',
marker_info = varargin{i+1};
case 'ctf',
ctf = varargin{i+1};
end
end
end
if ~exist('marker_info','var')
marker_info = readmarkerfile(folder);
end
if ~exist('ctf','var')
ctf = ctf_read_res4(folder,1);
end
CHAN = ctf.sensor.index.meg;
trials = [1:ctf.setup.number_trials];
win = 'all';
for i = 1:size(varargin,2)
if ischar(varargin{i})
switch varargin{i}
case 'meg',
CHAN = ctf.sensor.index.meg(varargin{i+1});
case 'ref',
CHAN = ctf.sensor.index.ref(varargin{i+1});
case 'eeg',
CHAN = ctf.sensor.index.eeg(varargin{i+1});
case 'other',
CHAN = ctf.sensor.index.other(varargin{i+1});
case 'vc',
CHAN = ctf.sensor.index.vc(varargin{i+1});
case 'all',
CHAN = [1:ctf.setup.number_channels];
case 'trials'
trials = varargin{i+1};
case 'markers'
marks = varargin{i+1};
case 'window'
win = varargin{i+1};
end
end
end
if ~exist('marks','var')
[ctf] = ctf_read_meg4(folder,ctf,CHAN,win,trials);
epochs = cell(1,1);
epochs{1} = zeros(size(ctf.data{1},1),size(ctf.data{1},2),size(ctf.data,1));
for i = 1:size(ctf.data,1)
epochs{1}(:,:,i)=ctf.data{i};
end
else
nm=size(marks,2);
epochs=cell(1,nm);
for mkr = 1:nm
mk=ismember(marker_info.marker_names,marks(mkr));
nsamp=marker_info.number_samples(mk)
nss=0;
for ns=1:nsamp
tr=marker_info.trial_times{mk}(ns,1);
if ismember(tr,trials)
nss=nss+1;
tim=marker_info.trial_times{mk}(ns,2);
times=win+tim;
[ctf2] = ctf_read_meg4(folder,ctf,CHAN,times,tr);
temp=ctf2.data{1};
if nss==1
epochs{mkr}=zeros(size(temp,1),size(temp,2),1);
end
epochs{mkr}(:,:,nss)=temp;
end
end
end
end
data = struct('epochs',{epochs},'setup',{ctf.setup},'sensor',{ctf.sensor});
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -