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

📄 pop_importpres.m

📁 含有多种ICA算法的eeglab工具箱
💻 M
字号:
% pop_importpres() - append Presentation event file information into eeglab()%% Usage:%   >> EEGOUT = pop_importpres( EEGIN, filename );%   >> EEGOUT = pop_importpres( EEGIN, filename, typefield, ...%                                  latfield, durfield, align, 'key', 'val', ... );%% Inputs:%   EEGIN          - input dataset%   filename       - file name%   typefield      - [string] type field name. Default is 'code'.%   latfield       - [string] latency field name. Default is 'time'.%   durfield       - [string] duration field name. Default is 'none'.%   align          - [integer] alignment with preexisting events%                    see pop_importevent().%   'key','val'    - This function calls pop_importevent(). These are%                    optional arguments for this function (for event %                    alignment for instance).% % Outputs:%   EEGOUT         - data structure%% Note: 1) If they are pre-existing events in the input dataset,%          this function will recalculate the latency of the events%          in the Presentation file, so that they match the one%          of the pre-existing events.%% Author: Arnaud Delorme, CNL / Salk Institute, 15 March 2002%% Note: this function is backward compatible (before the input%       'durfield' was introduced) and can take 'align' as the %       5th paramter (instead of 6th parameter).%% See also: eeglab(), pop_importevent()%123456789012345678901234567890123456789012345678901234567890123456789012% Copyright (C) 13 March 2002 Arnaud Delorme, Salk Institute, arno@salk.edu%% This program is free software; you can redistribute it and/or modify% it under the terms of the GNU General Public License as published by% the Free Software Foundation; either version 2 of the License, or% (at your option) any later version.%% This program is distributed in the hope that it will be useful,% but WITHOUT ANY WARRANTY; without even the implied warranty of% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the% GNU General Public License for more details.%% You should have received a copy of the GNU General Public License% along with this program; if not, write to the Free Software% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA% $Log: pop_importpres.m,v $% Revision 1.16  2004/05/24 22:06:56  arno% importing duration field%% Revision 1.15  2004/03/19 00:48:16  arno% propagate varargin%% Revision 1.14  2004/01/29 01:51:16  arno% debug cancel button%% Revision 1.13  2004/01/29 01:39:34  arno% debug history%% Revision 1.12  2004/01/29 01:35:57  arno% allow to import any field for type and latency%% Revision 1.11  2003/12/11 19:52:42  arno% allowing different alignments%% Revision 1.10  2003/11/19 19:28:29  arno% allow to import different fields for type%% Revision 1.9  2003/11/19 18:28:57  arno% debug code and event type%% Revision 1.8  2003/11/07 02:10:39  arno% debuging decoding of fields%% Revision 1.7  2003/11/07 01:45:11  arno% reading fields automatically%% Revision 1.6  2003/11/04 01:11:47  arno% change default file filter%% Revision 1.5  2003/01/24 04:14:46  scott% header edit -sm%% Revision 1.4  2003/01/24 02:14:16  arno% changing delimiter to 9%% Revision 1.3  2002/10/15 17:05:02  arno% drawnow%% Revision 1.2  2002/08/07 17:40:24  arno% header%% Revision 1.1  2002/04/05 17:32:13  jorn% Initial revision%function [EEG, command] = pop_importpres(EEG, filename, typefield, latfield, durfield, align, varargin); command = '';if nargin < 1     help pop_importpres;    returnend;% decode input (and backward compatibility)% -----------------------------------------if nargin < 5    durfield = '';end;if nargin >= 5 & ~isstr(durfield)    if nargin >= 6        varargin = { align varargin{:} };    end;    align = durfield;    durfield = '';else    if nargin < 6        align = 0;    end;end;if nargin < 2 	% ask user	[filename, filepath] = uigetfile('*.log;*.LOG', 'Choose a Presentation file -- pop_importpres()');     drawnow;	if filename == 0 return; end;	filename = [filepath filename];end;fields = loadtxt(filename, 'delim', 9, 'skipline', -2, 'nlines', 1, 'verbose', 'off');% finding fields% --------------if nargin > 1    if nargin < 3        typefield = 'code'; % backward compatibility        latfield  = 'time';    end;    indtype  = strmatch(lower(typefield), lower(fields));    indlat   = strmatch(lower(latfield) , lower(fields));    if ~isempty(durfield)         inddur   = strmatch(lower(durfield) , lower(fields));    else inddur = 0;    end;else    indtype1   = strmatch('event type', lower(fields));    indtype2   = strmatch('code', lower(fields));    indtype    = [ indtype1 indtype2 1];    indlatency = strmatch('time', lower(fields), 'exact');    indlatency = [ indlatency 1 ];    uilist = { { 'style' 'text' 'string' [ 'File field containing event types' 10 '' ] } ...               { 'style' 'list' 'string' strvcat(fields) 'value' indtype(1)  'listboxtop' indtype(1)} ...               { 'style' 'text' 'string' [ 'File field containing event latencies' 10 '' ] } ...               { 'style' 'list' 'string' strvcat(fields) 'value' indlatency(1) 'listboxtop' indlatency(1) } ...               { 'style' 'text' 'string' [ 'File field containing event durations' 10 '' ] } ...               { 'style' 'list' 'string' strvcat({ 'None' fields{:} }) 'value' 1 'listboxtop' 1 } ...               { } { 'style' 'text' 'string' 'Note: scroll lists then click to select field' } };    uigeom = { [2 1] [2 1] [2 1] 1 1 };    result = inputgui(uigeom, uilist, 'pophelp(''pop_importpres'')', 'Import presentation file - pop_importpres()', ...                      [], 'normal', [2 2 2 1 1]);    if isempty(result), return; end;        indtype = result{1};    indlat  = result{2};    inddur  = result{3}-1;    typefield = fields{indtype};    latfield  = fields{indlat};    if inddur ~= 0         durfield  = fields{inddur};    else durfield  = '';    end;end;if isempty(indtype)    error(['Could not detect field ''' typefield ''', try importing the file as ASCII (use delimiter=9 (tab))']);end;if isempty(indlat)    error(['Could not detect field ''' latfield ''', try importing the file as ASCII (use delimiter=9 (tab))']);end;disp(['Replacing field ''' typefield ''' by ''type'' for EEGLAB compatibility']);disp(['Replacing field ''' latfield  ''' by ''latency'' for EEGLAB compatibility']);fields{indtype} = 'type';fields{indlat}  = 'latency';if inddur ~= 0    fields{inddur}  = 'duration';end;% regularizing field names% ------------------------for index = 1:length(fields)    indspace = find(fields{index} == ' ');    fields{index}(indspace) = '_';    indparen = find(fields{index} == ')');    if ~isempty(indparen) & indparen == length(fields{index})        % remove text for parenthesis        indparen = find(fields{index} == '(');        if indparen ~= 1            disp([ 'Renaming ''' fields{index} ''' to ''' fields{index}(1:indparen-1) ''' for Matlab compatibility' ]);            fields{index} = fields{index}(1:indparen-1);        else            fields{index}(indspace) = '_';        end;    else        fields{index}(indspace) = '_';        indparen = find(fields{index} == '(');        fields{index}(indspace) = '_';    end;end;% find if uncertainty is duplicated% ---------------------------------induncert  = strmatch('uncertainty', lower(fields), 'exact');if length(induncert) > 1    fields{induncert(2)}= 'Uncertainty2';    disp('Renaming second ''Uncertainty'' field');end;% import file% -----------if isempty(EEG.event), align = NaN; end;EEG = pop_importevent(EEG, 'append', 'no', 'event', filename, 'timeunit', 1E-4, 'skipline', -3, ...                           'delim', 9, 'align', align, 'fields', fields, varargin{:});command = sprintf('EEG = pop_importpres(%s, %s);', inputname(1), vararg2str({ filename typefield latfield durfield align })); return;

⌨️ 快捷键说明

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