📄 erp_modify_datamat.m
字号:
%ERP_MODIFY_DATAMAT
%
% USAGE: erp_modify_datamat(modifier, datamat_file)
%
% ERP_MODIFY_DATAMAT modify a datamat file based the re-selected
% information.
%
% modifier: a struct contains modified information. fields are:
% modifier.selected_channels
% modifier.selected_subjects
% Called by erp_plot_ui
%
% Created on 19-DEC-2002 by Jimmy Shen
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function h01 = erp_modify_datamat(varargin)
if nargin == 0 | ~ischar(varargin{1})
modifier = varargin{1};
datamat_file = varargin{2};
calling_fig = varargin{3};
h01 = init(modifier, datamat_file, calling_fig);
return;
end;
% clear the message line,
%
h = findobj(gcf,'Tag','MessageLine');
set(h,'String','');
action = varargin{1};
if strcmp(action,'filename_edit')
filename_hdl = getappdata(gcf, 'filename_hdl');
filename = get(filename_hdl, 'string');
setappdata(gcf, 'filename', filename);
elseif strcmp(action,'select_all_chan')
select_all_chan;
elseif strcmp(action,'select_all_subj')
select_all_subj;
elseif strcmp(action,'select_all_cond')
select_all_cond;
elseif strcmp(action,'select_all_behav')
select_all_behav;
elseif strcmp(action,'start_time_edit')
start_time_edit;
elseif strcmp(action,'end_time_edit')
end_time_edit;
elseif strcmp(action,'click_modify')
click_modify;
elseif strcmp(action,'delete_fig')
delete_fig;
elseif strcmp(action,'edit_chan_order')
edit_chan_order;
end
return;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% init: Initialize the GUI layout
%
% I (datamat_file) - Matlab data file that contains a structure array
% containing the session information for the study
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function h01 = init(modifier, datamat_file, calling_fig)
load(datamat_file);
%, 'session_info', 'time_info', 'setting1', 'selected_behav', ...
% 'selected_channels','selected_subjects','selected_conditions');
if ~isfield(session_info,'system')
session_info.system.class = 1;
session_info.system.type = 1;
end
switch session_info.system.class
case 1
type_str = 'BESAThetaPhi|EGI128|EGI256';
switch session_info.system.type
case 1
load('erp_loc_besa148');
case 2
load('erp_loc_egi128');
case 3
load('erp_loc_egi256');
end
case 2
type_str = 'CTF-150';
switch session_info.system.type
case 1
load('erp_loc_ctf150');
end
end
old_time_info = time_info;
old_selected_channels = selected_channels;
old_selected_subjects = selected_subjects;
selected_channels = modifier.selected_channels;
selected_subjects = modifier.selected_subjects;
prestim = time_info.prestim;
digit_interval = time_info.digit_interval;
end_epoch = time_info.end_epoch + digit_interval; % for GUI
sweep = end_epoch - prestim;
timepoint = time_info.timepoint;
start_timepoint = time_info.start_timepoint;
start_time = time_info.start_time;
end_time = time_info.end_time + digit_interval; % for GUI
old_chan_order = session_info.chan_order;
chan_order = old_chan_order;
chan_name = chan_nam(chan_order,:);
subj_name = session_info.subj_name;
cond_name = session_info.condition;
if isfield(session_info,'behavname')
behavname = session_info.behavname;
else
behavname = {};
for i=1:size(session_info.behavdata,2)
behavname = [behavname, {['behav', num2str(i)]}];
end
session_info.behavname = behavname;
end
h01 = erp_create_modify_ui(1);
set(h01, 'name', 'Modify Datamat');
chan_lst_hdl = getappdata(h01,'chan_lst_hdl');
subj_lst_hdl = getappdata(h01,'subj_lst_hdl');
cond_lst_hdl = getappdata(h01,'cond_lst_hdl');
behav_lst_hdl = getappdata(h01,'behav_lst_hdl');
prestim_hdl = getappdata(h01,'prestim_hdl');
sweep_hdl = getappdata(h01,'sweep_hdl');
epoch_hdl = getappdata(h01,'epoch_hdl');
start_time_hdl = getappdata(h01,'start_time_hdl');
end_time_hdl = getappdata(h01,'end_time_hdl');
filename_hdl = getappdata(h01,'filename_hdl');
set(chan_lst_hdl, 'string', chan_name);
set(subj_lst_hdl, 'string', subj_name);
set(cond_lst_hdl, 'string', cond_name);
set(behav_lst_hdl, 'string', behavname);
set(prestim_hdl, 'string', num2str(prestim));
set(sweep_hdl, 'string', num2str(sweep));
set(epoch_hdl, 'string', num2str(end_epoch));
set(start_time_hdl, 'string', num2str(start_time));
set(end_time_hdl, 'string', num2str(end_time));
setappdata(h01,'old_time_info',old_time_info);
setappdata(h01,'old_selected_channels',old_selected_channels);
setappdata(h01,'old_selected_subjects',old_selected_subjects);
setappdata(h01,'old_chan_order',old_chan_order);
setappdata(h01,'chan_order',chan_order);
setappdata(h01,'calling_fig', calling_fig);
setappdata(h01,'selected_channels', selected_channels);
setappdata(h01,'selected_subjects', selected_subjects);
setappdata(h01,'selected_conditions', selected_conditions);
if ~exist('selected_behav','var')
selected_behav = ones(1, size(session_info.behavdata, 2));
end
setappdata(h01,'selected_behav', selected_behav);
setappdata(h01,'time_info', time_info);
setappdata(h01,'setting1', setting1);
if ~exist('create_ver','var')
create_ver = plsgui_vernum;
end
setappdata(h01,'create_ver',create_ver);
if ~exist('datafile','var')
datafile = datamat_file;
end
setappdata(h01,'datafile',datafile);
setappdata(h01,'session_file',session_file);
[filepath filename] = rri_fileparts(datamat_file);
setappdata(h01,'filepath', filepath);
setappdata(h01,'filename', filename);
setappdata(h01,'old_filename', filename);
set(filename_hdl, 'string', filename);
setappdata(h01,'session_info', session_info);
selected_lst = find(selected_channels);
if isempty(selected_lst)
msgbox('No channel was selected, the first one is now selected.','modal');
selected_channels(1) = 1;
selected_lst = 1;
end
set(chan_lst_hdl,'value',selected_lst,'list',selected_lst(1));
selected_lst = find(selected_subjects);
if isempty(selected_lst)
msgbox('No subject was selected, the first one is now selected.','modal');
selected_subjects(1) = 1;
selected_lst = 1;
end
set(subj_lst_hdl,'value',selected_lst,'list',selected_lst(1));
selected_lst = find(selected_conditions);
if isempty(selected_lst)
msgbox('No condition was selected, the first one is now selected.','modal');
selected_conditions(1) = 1;
selected_lst = 1;
end
set(cond_lst_hdl,'value',selected_lst,'list',selected_lst(1));
selected_lst = find(selected_behav);
if isempty(selected_lst)
% msgbox('No behavior was selected, the first one is now selected.','modal');
selected_conditions(1) = 1;
selected_lst = 1;
end
set(behav_lst_hdl, 'value',find(selected_behav), 'list',1);
return; % init
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% select_all_chan: select all the channels
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function select_all_chan
chan_lst_hdl = getappdata(gcf, 'chan_lst_hdl');
chan_selection = 1 : size(get(chan_lst_hdl, 'string'), 1);
set(chan_lst_hdl, 'value', chan_selection, 'list', 1);
return % select_all_chan
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% select_all_subj: select all the subjects
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function select_all_subj
subj_lst_hdl = getappdata(gcf, 'subj_lst_hdl');
subj_selection = 1 : size(get(subj_lst_hdl, 'string'), 1);
set(subj_lst_hdl, 'value', subj_selection, 'list', 1);
return % select_all_subj
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% select_all_cond: select all the conditions
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function select_all_cond
cond_lst_hdl = getappdata(gcf, 'cond_lst_hdl');
cond_selection = 1 : size(get(cond_lst_hdl, 'string'), 1);
set(cond_lst_hdl, 'value', cond_selection, 'list', 1);
return % select_all_cond
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% select_all_behav: select all the behaviors
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function select_all_behav
behav_lst_hdl = getappdata(gcf, 'behav_lst_hdl');
behav_selection = 1 : size(get(behav_lst_hdl, 'string'), 1);
set(behav_lst_hdl, 'value', behav_selection, 'list', 1);
return % select_all_behav
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% start_time_edit
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function start_time_edit
time_info = getappdata(gcf, 'time_info');
prestim = time_info.prestim;
end_epoch = time_info.end_epoch;
digit_interval = time_info.digit_interval;
start_time = time_info.start_time;
end_time = time_info.end_time;
start_time_hdl = getappdata(gcf,'start_time_hdl');
new_start_time = str2num(get(start_time_hdl,'string'));
if isempty(new_start_time) | new_start_time < prestim ...
| new_start_time >= end_time
msg = 'Invalid Analysis Starting Time';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
set(start_time_hdl,'string',num2str(start_time));
return;
end
% | mod(new_start_time-prestim, digit_interval)
if round(new_start_time/digit_interval)*digit_interval ~= new_start_time
new_start_time = round(new_start_time/digit_interval)*digit_interval;
set(start_time_hdl,'string',num2str(new_start_time));
end
time_info.start_time = new_start_time;
time_info.start_timepoint = floor(new_start_time / digit_interval);
time_info.timepoint = round((end_time-new_start_time) / digit_interval + 1);
setappdata(gcf,'time_info', time_info);
return; % start_time_edit
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% end_time_edit
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -