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

📄 batch_pls_analysis.m

📁 绝对经典,老外制作的功能强大的matlab实现PLS_TOOBOX
💻 M
📖 第 1 页 / 共 2 页
字号:
      if exist('plslog.m','file')
         switch pls
         case 1
            plslog('Batch ERP Mean-Centering Analysis');
         case 2
            plslog('Batch ERP Non-Rotated Analysis');
         case 3
            plslog('Batch ERP Behavior Analysis');
         case 4
            plslog('Batch ERP Multiblock Analysis');
         end
      end

      switch pls
      case 1
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 1;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 0;
         PLSoptions.ismultiblock = 0;
      case 2
         PLSoptions.ContrastFile = contrasts;
         PLSoptions.ismean = 0;
         PLSoptions.iscontrast = 1;
         PLSoptions.isbehav = 0;
         PLSoptions.ismultiblock = 0;
      case 3
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 0;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 1;
         PLSoptions.ismultiblock = 0;

%         for bcol=1:size(behavdata, 2)
 %           PLSoptions.behavname = ...
%		[PLSoptions.behavname, {['behav', num2str(bcol)]}];
 %        end

         PLSoptions.behavdata = behavdata;
         PLSoptions.behavname = behavname;

         for g = 1:length(group_files)
            load(PLSoptions.profiles{g}, 'selected_subjects');
            count = sum(selected_subjects) * sum(selected_cond);
            PLSoptions.behavdata_lst{g} = behavdata(1:count, :);
            behavdata(1:count, :) = [];
         end

         PLSoptions.BehavDataCol = size(PLSoptions.behavdata, 2);
      case 4
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 1;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 1;
         PLSoptions.ismultiblock = 1;

%         for bcol=1:size(behavdata, 2)
 %           PLSoptions.behavname = ...
%		[PLSoptions.behavname, {['behav', num2str(bcol)]}];
 %        end

         PLSoptions.behavdata = behavdata;
         PLSoptions.behavname = behavname;

         for g = 1:length(group_files)
            load(PLSoptions.profiles{g}, 'selected_subjects');
            count = sum(selected_subjects) * sum(selected_cond);
            PLSoptions.behavdata_lst{g} = behavdata(1:count, :);
            behavdata(1:count, :) = [];
         end

         PLSoptions.BehavDataCol = size(PLSoptions.behavdata, 2);
      end

      if(exist(result_file, 'file')==2)
         disp(['WARNING: File ',result_file,' is overwritten.']);
      end

      erp_analysis(PLSoptions.ismean, ...
		PLSoptions.ishelmert, PLSoptions.iscontrast, ...
		PLSoptions.isbehav, ...
		PLSoptions.BehavDataCol, PLSoptions.ContrastDataCol, ...
		PLSoptions.posthoc, PLSoptions.profiles, ...
		PLSoptions.save_datamat, ...
		PLSoptions.num_perm, PLSoptions.num_boot, PLSoptions.Clim, ...
		PLSoptions.system, PLSoptions.ContrastFile, ...
		PLSoptions.cond_selection, ...
		PLSoptions.behavdata_lst, PLSoptions.behavname, ...
		PLSoptions.ismultiblock, PLSoptions.bscan, ...
		PLSoptions.output_file);

      if exist('progress_hdl','var') & ishandle(progress_hdl)
         close(progress_hdl);
      end

   elseif ~isempty(findstr(first_file, '_STRUCTdatamat.mat'))	% STRUCT

      PLSoptions.profiles = [group_files{:}];
      PLSoptions.num_perm = num_perm;
      PLSoptions.num_boot = num_boot;
      PLSoptions.posthoc = [];
      PLSoptions.Clim = clim;
      PLSoptions.save_datamat = save_data;
      PLSoptions.cond_selection = selected_cond;

      PLSoptions.behavname = {};
      PLSoptions.behavdata = [];
      PLSoptions.behavdata_lst = {};
      PLSoptions.bscan = bscan;

      PLSoptions.output_file = result_file;

      if exist('plslog.m','file')
         switch pls
         case 1
            plslog('Batch STRUCT Mean-Centering Analysis');
         case 2
            plslog('Batch STRUCT Non-Rotated Analysis');
         case 3
            plslog('Batch STRUCT Behavior Analysis');
         case 4
            plslog('Batch STRUCT Multiblock Analysis');
         end
      end

      switch pls
      case 1
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 1;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 0;
         PLSoptions.ismultiblock = 0;
      case 2
         PLSoptions.ContrastFile = contrasts;
         PLSoptions.ismean = 0;
         PLSoptions.iscontrast = 1;
         PLSoptions.isbehav = 0;
         PLSoptions.ismultiblock = 0;
      case 3
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 0;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 1;
         PLSoptions.ismultiblock = 0;

%         for bcol=1:size(behavdata, 2)
 %           PLSoptions.behavname = ...
%		[PLSoptions.behavname, {['behav', num2str(bcol)]}];
 %        end

         PLSoptions.behavdata = behavdata;
         PLSoptions.behavname = behavname;

         for g = 1:length(group_files)
            load(PLSoptions.profiles{g}, 'selected_subjects');
            count = sum(selected_subjects) * sum(selected_cond);
            PLSoptions.behavdata_lst{g} = behavdata(1:count, :);
            behavdata(1:count, :) = [];
         end
      case 4
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 1;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 1;
         PLSoptions.ismultiblock = 1;

%         for bcol=1:size(behavdata, 2)
 %           PLSoptions.behavname = ...
%		[PLSoptions.behavname, {['behav', num2str(bcol)]}];
 %        end

         PLSoptions.behavdata = behavdata;
         PLSoptions.behavname = behavname;

         for g = 1:length(group_files)
            load(PLSoptions.profiles{g}, 'selected_subjects');
            count = sum(selected_subjects) * sum(selected_cond);
            PLSoptions.behavdata_lst{g} = behavdata(1:count, :);
            behavdata(1:count, :) = [];
         end
      end

      if(exist(result_file, 'file')==2)
         disp(['WARNING: File ',result_file,' is overwritten.']);
      end

      struct_analysis(PLSoptions.isbehav, ...
		PLSoptions.profiles, PLSoptions.num_perm, ...
		PLSoptions.num_boot, PLSoptions.Clim, ...
		PLSoptions.posthoc, ...
		PLSoptions.cond_selection, PLSoptions.behavname, ...
		PLSoptions.behavdata, PLSoptions.behavdata_lst, ...
		PLSoptions.ContrastFile, ...
		PLSoptions.iscontrast, PLSoptions.ismean, ...
		PLSoptions.save_datamat, ...
		PLSoptions.ismultiblock, PLSoptions.bscan, ...
		PLSoptions.output_file);

      if exist('progress_hdl','var') & ishandle(progress_hdl)
         close(progress_hdl);
      end

   elseif ~isempty(findstr(first_file, '_PETdatamat.mat'))	% PET

      PLSoptions.profiles = [group_files{:}];
      PLSoptions.num_perm = num_perm;
      PLSoptions.num_boot = num_boot;
      PLSoptions.posthoc = [];
      PLSoptions.Clim = clim;
      PLSoptions.save_datamat = save_data;
      PLSoptions.cond_selection = selected_cond;

      PLSoptions.behavname = {};
      PLSoptions.behavdata = [];
      PLSoptions.behavdata_lst = {};
      PLSoptions.bscan = bscan;

      PLSoptions.output_file = result_file;

      if exist('plslog.m','file')
         switch pls
         case 1
            plslog('Batch PET Mean-Centering Analysis');
         case 2
            plslog('Batch PET Non-Rotated Analysis');
         case 3
            plslog('Batch PET Behavior Analysis');
         case 4
            plslog('Batch PET Multiblock Analysis');
         end
      end

      switch pls
      case 1
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 1;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 0;
         PLSoptions.ismultiblock = 0;
      case 2
         PLSoptions.ContrastFile = contrasts;
         PLSoptions.ismean = 0;
         PLSoptions.iscontrast = 1;
         PLSoptions.isbehav = 0;
         PLSoptions.ismultiblock = 0;
      case 3
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 0;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 1;
         PLSoptions.ismultiblock = 0;

%         for bcol=1:size(behavdata, 2)
 %           PLSoptions.behavname = ...
%		[PLSoptions.behavname, {['behav', num2str(bcol)]}];
 %        end

         PLSoptions.behavdata = behavdata;
         PLSoptions.behavname = behavname;

         for g = 1:length(group_files)
            load(PLSoptions.profiles{g}, 'session_info');
            count = session_info.num_subjects * sum(selected_cond);
            PLSoptions.behavdata_lst{g} = behavdata(1:count, :);
            behavdata(1:count, :) = [];
         end
      case 4
         PLSoptions.ContrastFile = [];
         PLSoptions.ismean = 1;
         PLSoptions.iscontrast = 0;
         PLSoptions.isbehav = 1;
         PLSoptions.ismultiblock = 1;

%         for bcol=1:size(behavdata, 2)
 %           PLSoptions.behavname = ...
%		[PLSoptions.behavname, {['behav', num2str(bcol)]}];
 %        end

         PLSoptions.behavdata = behavdata;
         PLSoptions.behavname = behavname;

         for g = 1:length(group_files)
            load(PLSoptions.profiles{g}, 'session_info');
            count = session_info.num_subjects * sum(selected_cond);
            PLSoptions.behavdata_lst{g} = behavdata(1:count, :);
            behavdata(1:count, :) = [];
         end
      end

      if(exist(result_file, 'file')==2)
         disp(['WARNING: File ',result_file,' is overwritten.']);
      end

      pet_analysis(PLSoptions.isbehav, ...
		PLSoptions.profiles, PLSoptions.num_perm, ...
		PLSoptions.num_boot, PLSoptions.Clim, ...
		PLSoptions.posthoc, ...
		PLSoptions.cond_selection, PLSoptions.behavname, ...
		PLSoptions.behavdata, PLSoptions.behavdata_lst, ...
		PLSoptions.ContrastFile, ...
		PLSoptions.iscontrast, PLSoptions.ismean, ...
		PLSoptions.save_datamat, ...
		PLSoptions.ismultiblock, PLSoptions.bscan, ...
		PLSoptions.output_file);

      if exist('progress_hdl','var') & ishandle(progress_hdl)
         close(progress_hdl);
      end

   else
      error('There is error(s) in batch file, please read ''UserGuide.htm'' for help');
   end

   return;					% batch_pls_analysis

⌨️ 快捷键说明

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