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

📄 plsgui.m

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


%------------------------------------------------------------------------------------
function ChooseERP()

   Hc_textPET=findobj(gcf,'Tag','PETLabel');
   Hc_textBfMRI=findobj(gcf,'Tag','BfMRILabel');
   Hc_textfMRI=findobj(gcf,'Tag','fMRILabel');
   Hc_textERP=findobj(gcf,'Tag','ERPLabel');
   Hc_textSTRUCT=findobj(gcf,'Tag','STRUCTLabel');
   Hc_pushPETsession=findobj(gcf,'Tag','PETSessionProfileButton');
   Hc_pushBfMRIsession=findobj(gcf,'Tag','BfMRISessionProfileButton');
   Hc_pushfMRIsession=findobj(gcf,'Tag','SessionProfileButton');
   Hc_pushERPsession=findobj(gcf,'Tag','ERPSessionProfileButton');
   Hc_pushSTRUCTsession=findobj(gcf,'Tag','STRUCTSessionProfileButton');
   Hc_pushPETanalysis=findobj(gcf,'Tag','PETAnalysisButton');
   Hc_pushBfMRIanalysis=findobj(gcf,'Tag','BfMRIAnalysisButton');
   Hc_pushfMRIanalysis=findobj(gcf,'Tag','PLSAnalysisButton');
   Hc_pushERPanalysis=findobj(gcf,'Tag','ERPAnalysisButton');
   Hc_pushSTRUCTanalysis=findobj(gcf,'Tag','STRUCTAnalysisButton');
   Hc_pushPETresult=findobj(gcf,'Tag','PETResultButton');
   Hc_pushBfMRIresult=findobj(gcf,'Tag','BfMRIResultButton');
   Hc_pushfMRIresult=findobj(gcf,'Tag','PLSResultButton');
   Hc_pushERPresult=findobj(gcf,'Tag','ERPResultButton');
   Hc_pushSTRUCTresult=findobj(gcf,'Tag','STRUCTResultButton');
   h_pet = findobj(gcf,'tag','PETButton');
   h_bfmri = findobj(gcf,'tag','BfMRIButton');
   h_fmri = findobj(gcf,'tag','fMRIButton');
   h_erp = findobj(gcf,'tag','ERPButton');
   h_struct = findobj(gcf,'tag','STRUCTButton');

   set(gcf,'Name','PLS for ERP data');
   set(Hc_textPET,'Visible','off');
   set(Hc_textBfMRI,'Visible','off');
   set(Hc_textfMRI,'Visible','off');
   set(Hc_textERP,'Visible','on');
   set(Hc_textSTRUCT,'Visible','off');
   set(Hc_pushPETsession,'Visible','off');
   set(Hc_pushBfMRIsession,'Visible','off');
   set(Hc_pushfMRIsession,'Visible','off');
   set(Hc_pushERPsession,'Visible','on');
   set(Hc_pushSTRUCTsession,'Visible','off');
   set(Hc_pushPETanalysis,'Visible','off');
   set(Hc_pushBfMRIanalysis,'Visible','off');
   set(Hc_pushfMRIanalysis,'Visible','off');
   set(Hc_pushERPanalysis,'Visible','on');
   set(Hc_pushSTRUCTanalysis,'Visible','off');
   set(Hc_pushPETresult,'Visible','off');
   set(Hc_pushBfMRIresult,'Visible','off');
   set(Hc_pushfMRIresult,'Visible','off');
   set(Hc_pushERPresult,'Visible','on');
   set(Hc_pushSTRUCTresult,'Visible','off');

   set(h_pet,'back',[0.7 0.7 0.7],'fore',[0 0 0]);
   set(h_bfmri,'back',[0.7 0.7 0.7],'fore',[0 0 0]);
   set(h_fmri,'back',[0.7 0.7 0.7],'fore',[0 0 0]);
   set(h_erp,'back',[0 0 0],'fore',[1 1 1]);
   set(h_struct,'back',[0.7 0.7 0.7],'fore',[0 0 0]);

   return;


%------------------------------------------------------------------------------------
function ChooseSTRUCT()

   Hc_textPET=findobj(gcf,'Tag','PETLabel');
   Hc_textBfMRI=findobj(gcf,'Tag','BfMRILabel');
   Hc_textfMRI=findobj(gcf,'Tag','fMRILabel');
   Hc_textERP=findobj(gcf,'Tag','ERPLabel');
   Hc_textSTRUCT=findobj(gcf,'Tag','STRUCTLabel');
   Hc_pushPETsession=findobj(gcf,'Tag','PETSessionProfileButton');
   Hc_pushBfMRIsession=findobj(gcf,'Tag','BfMRISessionProfileButton');
   Hc_pushfMRIsession=findobj(gcf,'Tag','SessionProfileButton');
   Hc_pushERPsession=findobj(gcf,'Tag','ERPSessionProfileButton');
   Hc_pushSTRUCTsession=findobj(gcf,'Tag','STRUCTSessionProfileButton');
   Hc_pushPETanalysis=findobj(gcf,'Tag','PETAnalysisButton');
   Hc_pushBfMRIanalysis=findobj(gcf,'Tag','BfMRIAnalysisButton');
   Hc_pushfMRIanalysis=findobj(gcf,'Tag','PLSAnalysisButton');
   Hc_pushERPanalysis=findobj(gcf,'Tag','ERPAnalysisButton');
   Hc_pushSTRUCTanalysis=findobj(gcf,'Tag','STRUCTAnalysisButton');
   Hc_pushPETresult=findobj(gcf,'Tag','PETResultButton');
   Hc_pushBfMRIresult=findobj(gcf,'Tag','BfMRIResultButton');
   Hc_pushfMRIresult=findobj(gcf,'Tag','PLSResultButton');
   Hc_pushERPresult=findobj(gcf,'Tag','ERPResultButton');
   Hc_pushSTRUCTresult=findobj(gcf,'Tag','STRUCTResultButton');
   h_pet = findobj(gcf,'tag','PETButton');
   h_bfmri = findobj(gcf,'tag','BfMRIButton');
   h_fmri = findobj(gcf,'tag','fMRIButton');
   h_erp = findobj(gcf,'tag','ERPButton');
   h_struct = findobj(gcf,'tag','STRUCTButton');

   set(gcf,'Name','PLS for STRUCT data');
   set(Hc_textPET,'Visible','off');
   set(Hc_textBfMRI,'Visible','off');
   set(Hc_textfMRI,'Visible','off');
   set(Hc_textERP,'Visible','off');
   set(Hc_textSTRUCT,'Visible','on');
   set(Hc_pushPETsession,'Visible','off');
   set(Hc_pushBfMRIsession,'Visible','off');
   set(Hc_pushfMRIsession,'Visible','off');
   set(Hc_pushERPsession,'Visible','off');
   set(Hc_pushSTRUCTsession,'Visible','on');
   set(Hc_pushPETanalysis,'Visible','off');
   set(Hc_pushBfMRIanalysis,'Visible','off');
   set(Hc_pushfMRIanalysis,'Visible','off');
   set(Hc_pushERPanalysis,'Visible','off');
   set(Hc_pushSTRUCTanalysis,'Visible','on');
   set(Hc_pushPETresult,'Visible','off');
   set(Hc_pushBfMRIresult,'Visible','off');
   set(Hc_pushfMRIresult,'Visible','off');
   set(Hc_pushERPresult,'Visible','off');
   set(Hc_pushSTRUCTresult,'Visible','on');

   set(h_pet,'back',[0.7 0.7 0.7],'fore',[0 0 0]);
   set(h_bfmri,'back',[0.7 0.7 0.7],'fore',[0 0 0]);
   set(h_fmri,'back',[0.7 0.7 0.7],'fore',[0 0 0]);
   set(h_erp,'back',[0.7 0.7 0.7],'fore',[0 0 0]);
   set(h_struct,'back',[0 0 0],'fore',[1 1 1]);

   return;


%-----------------------------------------------------------------------------
function toggle_save_setting

   h_save_setting = getappdata(gcf, 'h_save_setting');
   save_setting_status = 'off';

   curr_dir = pwd;
   if isempty(curr_dir)
      curr_dir = filesep;
   end

   try
      load('pls_profile');

      if strcmp(get(h_save_setting, 'check'), 'on')
         save_setting_status = 'off';
         set(h_save_setting, 'check', 'off');
      else
         save_setting_status = 'on';
         set(h_save_setting, 'check', 'on');
      end

      setappdata(gcf, 'save_setting_status', save_setting_status);
      pls_profile = which('pls_profile.mat');
      save(pls_profile,'-append','save_setting_status');
   catch
      msg = {'PLS position profile does not exist, do you want to:'};
      tit = 'PLS position profile';
      response = questdlg(msg,tit,'Create','Open','Cancel','Create');
      switch response
         case 'Create'
            msg = ['Do you want to put it under directory "',curr_dir,'"?'];
            tit = 'Confirm directory';
            response = questdlg(msg,tit,'Yes','No','Yes');

            switch response
               case 'Yes'
                  pls_profile = fullfile(curr_dir,'pls_profile.mat');
                  try
                     save_setting_status = 'on';
                     save(pls_profile, 'save_setting_status');
                     addpath(curr_dir);
                     set(h_save_setting, 'check', 'on');
                     setappdata(gcf, 'save_setting_status', save_setting_status);
                  catch
                     msg = ['Can not save "pls_profile.mat" under "',curr_dir,'"'];
                     msg = [msg, ', Do you want to try another directory?'];
                     tit = 'Save Error';
                     pls_profile = [];

                     response = questdlg(msg,tit,'Yes','No','Yes');

                     switch response
                        case 'Yes'
                           pls_profile = try_new_dir(curr_dir);
                           if ~isempty(pls_profile)
                              set(h_save_setting, 'check', 'on');
                              save_setting_status = 'on';
                           else
                              set(h_save_setting, 'check', 'off');
                              save_setting_status = 'off';
                           end
                        case 'No'
                           pls_profile = [];
                           save_setting_status = 'off';
                     end
                  end
               case 'No'
                  pls_profile = try_new_dir(curr_dir);
                  if ~isempty(pls_profile)
                     set(h_save_setting, 'check', 'on');
                     save_setting_status = 'on';
                  else
                     set(h_save_setting, 'check', 'off');
                     save_setting_status = 'off';
                  end
            end
         case 'Open'
            [fn, new_dir] = uigetfile('pls_profile.mat', ...
		'Open "pls_profile.mat"');

            if new_dir == 0
               pls_profile = [];
               save_setting_status = 'off';
            else
               try
                  addpath(new_dir);
                  load('pls_profile');
                  pls_profile=which('pls_profile.mat');
                  save(pls_profile, '-append', 'save_setting_status');
                  set(h_save_setting, 'check', 'on');
                  save_setting_status = 'on';
               catch
                  msg = ['Can not save "pls_profile.mat" under ',new_dir];
                  msg = [msg, ', Do you want to try another directory?'];
                  tit = 'Save Error';
                  pls_profile = [];

                  response = questdlg(msg,tit,'Yes','No','Yes');

                  switch response
                     case 'Yes'
                        pls_profile = try_new_dir(new_dir);
                        if ~isempty(pls_profile)
                           set(h_save_setting, 'check', 'on');
                           save_setting_status = 'on';
                        end
                      case 'No'
                        pls_profile = [];
                        save_setting_status = 'off';
                  end
               end
            end
         case 'Cancel'
            pls_profile = [];
            save_setting_status = 'off';
      end
   end

   setappdata(gcf, 'save_setting_status', save_setting_status);
   save(pls_profile, '-append', 'save_setting_status');

   return;					% toggle_save_setting


%-----------------------------------------------------------------------------
function toggle_save_display

   h_save_display = getappdata(gcf, 'h_save_display');
   save_display_status = 'off';

   curr_dir = pwd;
   if isempty(curr_dir)
      curr_dir = filesep;
   end

   try
      load('pls_profile');

      if strcmp(get(h_save_display, 'check'), 'on')
         save_display_status = 'off';
         set(h_save_display, 'check', 'off');
      else
         save_display_status = 'on';
         set(h_save_display, 'check', 'on');
      end

      setappdata(gcf, 'save_display_status', save_display_status);
      pls_profile = which('pls_profile.mat');
      save(pls_profile,'-append','save_display_status');
   catch
      msg = {'PLS position profile does not exist, do you want to:'};
      tit = 'PLS position profile';
      response = questdlg(msg,tit,'Create','Open','Cancel','Create');
      switch response
         case 'Create'
            msg = ['Do you want to put it under directory "',curr_dir,'"?'];
            tit = 'Confirm directory';
            response = questdlg(msg,tit,'Yes','No','Yes');

            switch response
               case 'Yes'
                  pls_profile = fullfile(curr_dir,'pls_profile.mat');
                  try
                     save_display_status = 'on';
                     save(pls_profile, 'save_display_status');
                     addpath(curr_dir);
                     set(h_save_display, 'check', 'on');
                     setappdata(gcf, 'save_display_status', save_display_status);
                  catch
                     msg = ['Can not save "pls_profile.mat" under "',curr_dir,'"'];
                     msg = [msg, ', Do you want to try another directory?'];
                     tit = 'Save Error';
                     pls_profile = [];

                     response = questdlg(msg,tit,'Yes','No','Yes');

                     switch response
                        case 'Yes'
                           pls_profile = try_new_dir(curr_dir);
                           if ~isempty(pls_profile)
                              set(h_save_display, 'check', 'on');
                              save_display_status = 'on';
                           else
                              set(h_save_display, 'check', 'off');
                              save_display_status = 'off';
                           end
                        case 'No'
                           pls_profile = [];
                           save_display_status = 'off';
                     end
                  end
               case 'No'
                  pls_profile = try_new_dir(curr_dir);
                  if ~isempty(pls_profile)
                     set(h_save_display, 'check', 'on');
                     save_display_status = 'on';
                  else
                     set(h_save_display, 'check', 'off');
                     save_display_status = 'off';
                  end
            end
         case 'Open'
            [fn, new_dir] = uigetfile('pls_profile.mat', ...
		'Open "pls_profile.mat"');

            if new_dir == 0
               pls_profile = [];
               save_display_status = 'off';
            else
               try
                  addpath(new_dir);
                  load('pls_profile');
                  pls_profile=which('pls_profile.mat');
                  save(pls_profile, '-append', 'save_display_status');
                  set(h_save_display, 'check', 'on');
                  save_display_status = 'on';
               catch
                  msg = ['Can not save "pls_profile.mat" under ',new_dir];
                  msg = [msg, ', Do you want to try another directory?'];
                  tit = 'Save Error';
                  pls_profile = [];

                  response = questdlg(msg,tit,'Yes','No','Yes');

                  switch response
                     case 'Yes'
                        pls_profile = try_new_dir(new_dir);
                        if ~isempty(pls_profile)
                           set(h_save_display, 'check', 'on');
                           save_display_status = 'on';
                        end
                      case 'No'
                        pls_profile = [];
                        save_display_status = 'off';
                  end
               end
            end
         case 'Cancel'
            pls_profile = [];
            save_display_status = 'off';
      end
   end

   setappdata(gcf, 'save_display_status', save_display_status);
   save(pls_profile, '-append', 'save_display_status');

   return;					% toggle_save_display


%-----------------------------------------------------------------------------
function delete_fig

   try
      load('pls_profile');
      pls_profile = which('pls_profile.mat');

      save_setting_status = getappdata(gcbf,'save_setting_status');
      plsgui_pos = get(gcbf,'position');

      if ~isempty(save_setting_status) & ~isempty(plsgui_pos)
         save(pls_profile,'-append','save_setting_status','plsgui_pos');
      end

   catch
   end

   return;					% delete_fig


%-----------------------------------------------------------------------------
function pls_profile = try_new_dir(old_dir)

   new_dir = rri_getdirectory({old_dir});

   if isempty(new_dir)
      pls_profile = [];
      return;
   end

   pls_profile = fullfile(new_dir,'pls_profile.mat');

   try
      save_setting_status = 'off';
      save_display_status = 'off';
      save(pls_profile, 'save_setting_status', 'save_display_status');
      addpath(new_dir);
   catch
      msg = ['Can not save "pls_profile.mat" under "',new_dir,'"'];
      msg = [msg, ', Do you want to try another directory?'];
      tit = 'Save Error';
      pls_profile = [];

      response = questdlg(msg,tit,'Yes','No','Yes');

      switch response
         case 'Yes'
            pls_profile = try_new_dir(new_dir);
         case 'No'
      end
   end

   return;					% try_new_dir

⌨️ 快捷键说明

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