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

📄 erp_plot_option_ui.m

📁 绝对经典,老外制作的功能强大的matlab实现PLS_TOOBOX
💻 M
📖 第 1 页 / 共 3 页
字号:

   %-------------------- time interval selection ----------------------

   x = left_margin;
   y = (num_line-6) * factor_line;
   w = 0.3;
   h = 1 * factor_line;

   pos = [x y w h];

   h1 = uicontrol('parent',h01, ...		% x-axis tick interval label
        'units','normal', ...
        'style','text', ...
        'fontunits','normal', ...
        'fontsize',0.55, ...
        'horizon','left', ...
        'back', [0.8 0.8 0.8], ...
	'string', 'Time Axis Tick Interval:', ...
        'position',pos);

   x = x + w;
   y = (num_line-6) * factor_line;
   w = 0.15;

   pos = [x y w h];

   x_tick_interval = uicontrol('parent',h01, ...	% x-axis select
        'units','normal', ...
        'style','popupmenu', ...
        'fontunits','normal', ...
        'fontsize',0.55, ...
        'horizon','left', ...
        'back', [1 1 1], ...
	'string',[' '], ...
        'value', 1, ...
	'callback', 'erp_plot_option_ui(''select_x_tick_interval'');', ...
        'position',pos);

   %-------------------- y-axis interval selection -------------------

   x = left_margin;
   y = (num_line-8) * factor_line;
   w = 0.3;

   pos = [x y w h];

   h1 = uicontrol('parent',h01, ...		% y-axis tick interval label
        'units','normal', ...
        'style','text', ...
        'fontunits','normal', ...
        'fontsize',0.55, ...
        'horizon','left', ...
        'back', [0.8 0.8 0.8], ...
        'string', 'Amplitude Tick Interval:', ...
        'position',pos);

   x = x + w;
   y = (num_line-8) * factor_line;
   w = 0.15;

   pos = [x y w h];

   y_tick_interval = uicontrol('parent',h01, ...  % y-axis select
        'units','normal', ...
        'style','popupmenu', ...
        'fontunits','normal', ...
        'fontsize',0.55, ...
        'horizon','left', ...
        'back', [1 1 1], ...
        'string',[' '], ...
        'value', 1, ...
        'callback', 'erp_plot_option_ui(''select_y_tick_interval'');', ...
        'position',pos);

   x = left_margin;
   y = (num_line-10) * factor_line;
   w = 0.3;

   pos = [x y w h];

   h1 = uicontrol('parent',h01, ...              % font size label
        'units','normal', ...
        'style','text', ...
        'fontunit','normal', ...
        'fontsize', 0.55, ...
        'horizon','left', ...
        'back',[0.8 0.8 0.8], ...
        'string','Font Size:', ...
        'position',pos);

   x = x + w;
   y = (num_line-10) * factor_line;
   w = 0.15;

   pos = [x y w h];

   font_size_hdl = uicontrol('parent',h01, ...     % font size select
        'units','normal', ...
        'style','popupmenu', ...
        'fontunits','normal', ...
        'fontsize',0.55, ...
        'horizon','left', ...
        'back',[1 1 1], ...
	'string', ['6 ';'8 ';'10';'11';'12';'14';'16';'18'], ...
        'value', 1, ...
        'callback', 'erp_plot_ui(''choose_font_size'');', ...
        'position',pos);

   x = left_margin;
   y = (num_line-12) * factor_line;
   w = 0.17;

   pos = [x y w h];

   h1 = uicontrol('parent',h01, ...              % wave size label
        'units','normal', ...
        'style','text', ...
        'fontunit','normal', ...
        'fontsize', 0.55, ...
        'horizon','left', ...
        'back',[0.8 0.8 0.8], ...
        'string','Wave Size:', ...
        'position',pos);

   x = x + w;
   w = 0.28;
   h = 0.8 * factor_line;

   pos = [x y w h];

   hc_wavesize = uicontrol('parent',h01, ...     % wave size slider
        'style','slider', ...
        'units','normal', ...
        'min',0.005, ...
        'max',0.3, ...
        'value',0.07, ...
        'sliderstep',[0.01,0.1], ...
        'callback', 'erp_plot_ui(''move_slider'');', ...
        'position',pos);

   %--------------------  selection button -------------------

   x = x + w + 0.1;
   y = (num_line-12) * factor_line;
   w = 0.15;
   h = 1 * factor_line;

   pos = [x y w h];

   h1 = uicontrol('parent',h01, ...		% OK button
	'unit','normal', ...
	'fontunit','normal', ...
	'fontsize',0.55, ...
	'horizon','center', ...
	'string', 'OK', ...
	'callback', 'erp_plot_option_ui(''click_ok'');', ...
	'position',pos);

   x = x + w + 0.05;

   pos = [x y w h];

   h1 = uicontrol('parent',h01, ...		% Cancel button
	'unit','normal', ...
	'fontunit','normal', ...
	'fontsize',0.55, ...
	'hor','center', ...
	'string', 'Cancel', ...
	'callback', 'erp_plot_option_ui(''click_cancel'');', ...
	'position',pos);

   x = 0.01;
   y = 0;
   w = 1;

   pos = [x y w h];

   h1 = uicontrol('parent',h01, ...		% Message Line
   	'style','text', ...
   	'units','normal', ...
	'horizon','left', ...
	'fontunit','normal', ...
   	'fontsize',0.55, ...
   	'back',[0.8 0.8 0.8], ...
   	'fore',[0.8 0.0 0.0], ...
   	'String','', ...
   	'tag', 'MessageLine', ...
	'position',pos);

   wave_order = getappdata(h0,'wave_order');		% [idx,subj_idx,cond_idx]
   num_group = getappdata(h0,'num_group');

   if view_option == 1

      set(cond_in_subj_lbl, 'visible', 'on');
      set(cond_in_subj_hdl, 'visible', 'on');
      set(subj_in_cond_lbl, 'visible', 'on');
      set(subj_in_cond_hdl, 'visible', 'on');

      session_info = getappdata(h0,'session_info');
      subj_name = session_info.subj_name;		% cond_name = ave_name below
      selected_subjects = find(getappdata(h0,'selected_subjects'));
      subj_name = subj_name(selected_subjects);

      if ~isempty(subj_name)
         set(cond_in_subj_hdl, 'value', 1, ...
		'string', char([{'(none)'} subj_name]));
      end

   elseif view_option == 2

      set(cond_in_subj_lbl, 'visible', 'on');
      set(cond_in_subj_hdl, 'visible', 'on');
      set(subj_in_cond_lbl, 'visible', 'on', 'string', 'All Grps in:');
      set(subj_in_cond_hdl, 'visible', 'on');

      for i=1:num_group
         subj_name{i} = ['group ' num2str(i)];
      end

      if ~isempty(subj_name)
         set(cond_in_subj_hdl, 'value', 1, ...
		'string', char([{'(none)'} subj_name]));
      end

   elseif view_option == 3

      set(rescale_hdl, 'visible', 'on');

   elseif view_option == 4

      pos = get(h01, 'position');
      set(h01, 'position', [pos(1)-0.05 pos(2) pos(3)+0.1 pos(4)]);
      pos = get(cond_in_subj_grp, 'position');
      set(cond_in_subj_grp, 'visible', 'on', 'position', [pos(1) pos(2) 0.09 pos(4)]);
      pos = get(cond_in_subj_lbl, 'position');
      set(cond_in_subj_lbl, 'visible', 'on', 'position', [pos(1)+0.1 pos(2) 0.12 pos(4)]);
      pos = get(cond_in_subj_grp_hdl, 'position');
      set(cond_in_subj_grp_hdl, 'visible', 'on', 'position', [pos(1)+0.09 pos(2) 0.14 pos(4)]);
      pos = get(subj_in_cond_grp, 'position');
      set(subj_in_cond_grp, 'visible', 'on', 'position', [pos(1) pos(2) 0.09 pos(4)]);
      pos = get(subj_in_cond_lbl, 'position');
      set(subj_in_cond_lbl, 'visible', 'on', 'position', [pos(1)+0.1 pos(2) 0.12 pos(4)]);
      pos = get(subj_in_cond_grp_hdl, 'position');
      set(subj_in_cond_grp_hdl, 'visible', 'on', 'position', [pos(1)+0.09 pos(2) 0.14 pos(4)]);

      for i=1:num_group
         grp_name{i} = ['grp ' num2str(i)];
      end

      if ~isempty(grp_name)
         set(cond_in_subj_grp, 'value', 1, 'string', char(grp_name));
         set(subj_in_cond_grp, 'value', 1, 'string', char(grp_name));
      end

      result_file = getappdata(h0,'datamat_file');
      load(result_file, 'datamat_files','common_conditions');
      rri_changepath('erpresult');

%      grp = get(cond_in_subj_grp, 'value');
      grp = 1;

      load(datamat_files{grp}, 'session_info', 'selected_subjects');
      subj_name = session_info.subj_name(find(selected_subjects));

      if ~isempty(subj_name)
         set(cond_in_subj_grp_hdl, 'value', 1, ...
		'string', char([{'(none)'} subj_name]));
      end

   elseif view_option == 5

      pos = get(h01, 'position');
      set(h01, 'position', [pos(1)-0.05 pos(2) pos(3)+0.1 pos(4)]);
      pos = get(cond_in_subj_grp_corr, 'position');
      set(cond_in_subj_grp_corr, 'visible', 'on', 'position', [pos(1) pos(2) 0.09 pos(4)]);
      pos = get(cond_in_subj_lbl, 'position');
      set(cond_in_subj_lbl, 'visible', 'on', 'position', [pos(1)+0.1 pos(2) 0.12 pos(4)]);
      pos = get(cond_in_subj_grp_corr_hdl, 'position');
      set(cond_in_subj_grp_corr_hdl, 'visible', 'on', 'position', [pos(1)+0.09 pos(2) 0.14 pos(4)]);
      pos = get(subj_in_cond_grp_corr, 'position');
      set(subj_in_cond_grp_corr, 'visible', 'on', 'position', [pos(1) pos(2) 0.09 pos(4)]);
      pos = get(subj_in_cond_lbl, 'position');
      set(subj_in_cond_lbl, 'visible', 'on', 'position', [pos(1)+0.1 pos(2) 0.12 pos(4)], 'string', 'All Beh in:');
      pos = get(subj_in_cond_grp_corr_hdl, 'position');
      set(subj_in_cond_grp_corr_hdl, 'visible', 'on', 'position', [pos(1)+0.09 pos(2) 0.14 pos(4)]);

      for i=1:num_group
         grp_name{i} = ['grp ' num2str(i)];
      end

      if ~isempty(grp_name)
         set(cond_in_subj_grp_corr, 'value', 1, 'string', char(grp_name));
         set(subj_in_cond_grp_corr, 'value', 1, 'string', char(grp_name));
      end

      result_file = getappdata(h0,'datamat_file');
      
      warning off;
      load(result_file, 'datamat_files','common_conditions','behavname','bscan');
      warning on;
      
      if ~exist('bscan','var') | isempty(bscan)
         bscan = 1:sum(common_conditions);
      end
      
      rri_changepath('erpresult');

%      grp = get(cond_in_subj_grp, 'value');
      grp = 1;

      load(datamat_files{grp}, 'session_info', 'selected_subjects');
%      subj_name = session_info.subj_name(find(selected_subjects));

      if ~isempty(behavname)	% (subj_name)
         set(cond_in_subj_grp_corr_hdl, 'value', 1, ...
		'string', char([{'(none)'} behavname]));
      end

   end

   wave_name = getappdata(h0,'wave_name');		% wave_name string
   selected_wave = getappdata(h0,'selected_wave');  % based on
					% selected_cond & selected_subj
   wave_name = wave_name(selected_wave);
   wave_selection = getappdata(h0,'wave_selection') + 1;

   avg_name = getappdata(h0,'avg_name');		% avg_name string
   selected_avg = find(getappdata(h0,'selected_conditions'));
   avg_name = avg_name(selected_avg);			% = cond_name

   avg_selection = getappdata(h0,'avg_selection') + 1;

   if view_option == 1

      if ~isempty(avg_name)
         set(avg_lst_hdl, 'value', avg_selection, ...
		'string', char([{'(none)'} avg_name]));
         set(subj_in_cond_hdl, 'value', 1, ...
		'string', char([{'(none)'} avg_name]));
      end

   elseif view_option == 2

      result_file = getappdata(h0,'datamat_file');
      load(result_file, 'datamat_files', 'common_conditions');
      rri_changepath('erpresult');
      load(datamat_files{1}, 'session_info');

      set(subj_in_cond_hdl, 'value', 1, 'string', ...
		char([{'(none)'} session_info.condition(find(common_conditions))]));

   elseif view_option == 4

      avg_name = session_info.condition(find(common_conditions));
      set(subj_in_cond_grp_hdl, 'value', 1, ...
		'string', char([{'(none)'} avg_name]));

   elseif view_option == 5

      selected_common = find(common_conditions);
      selected_common = selected_common(bscan);
      conditions_common = zeros(1,length(common_conditions));
      conditions_common(selected_common) = 1;

      avg_name = session_info.condition(find(conditions_common));
      set(subj_in_cond_grp_corr_hdl, 'value', 1, ...
		'string', char([{'(none)'} avg_name]));

   end

   set(wave_lst_hdl, 'value', wave_selection, ...
		'string', char([{'(none)'} wave_name]));

   y_interval = getappdata(h0,'y_interval');
   y_interval_cell = {};

   for i=1:length(y_interval)
      y_interval_cell = [y_interval_cell, {sprintf('%g',y_interval(i))}];
   end

   y_interval = char(y_interval_cell);
   set(y_tick_interval, 'string', y_interval);

   x_interval = getappdata(h0,'x_interval');
   x_interval_cell = {};

   for i=1:length(x_interval)
      x_interval_cell = [x_interval_cell, {sprintf('%d ms',x_interval(i))}];
   end

   x_interval = char(x_interval_cell);
   set(x_tick_interval, 'string', x_interval);

   x_interval_selection = getappdata(h0,'x_interval_selection');
   set(x_tick_interval, 'value', x_interval_selection);

   y_interval_selection = getappdata(h0,'y_interval_selection');
   set(y_tick_interval, 'value', y_interval_selection);

   font_size_selection = getappdata(h0,'font_size_selection');
   set(font_size_hdl, 'value', font_size_selection);

   rescale = getappdata(h0,'rescale');
   set(rescale_hdl, 'value', rescale);

   eta = getappdata(h0,'eta');
   set(hc_wavesize, 'value', eta);

   setappdata(h01,'option_fig',h01);
   setappdata(h01,'wave_lst_hdl',wave_lst_hdl);
   setappdata(h01,'avg_lst_hdl',avg_lst_hdl);
   setappdata(h01,'x_tick_interval',x_tick_interval);
   setappdata(h01,'y_tick_interval',y_tick_interval);
   setappdata(h01,'rescale_hdl',rescale_hdl);
   setappdata(h01,'font_size_hdl', font_size_hdl);
   setappdata(h01,'hc_wavesize',hc_wavesize);

   %  the following variables will be assigned by the interactive
   %  action functions, but may be used before assignment. so,
   %  initial it
   %
   setappdata(h01,'wave_selection',getappdata(h0,'wave_selection'));
   setappdata(h01,'avg_selection',getappdata(h0,'avg_selection'));
   setappdata(h01,'x_interval_selection',getappdata(h0,'x_interval_selection'));
   setappdata(h01,'y_interval_selection',getappdata(h0,'y_interval_selection'));

⌨️ 快捷键说明

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