fNIRS常用代码(Matlab2020a)

【原创】

%% 将文件分装到不同文件夹
filePath = uigetdir(); % 选择要处理的子文件夹所在的文件夹 或者直接指定
cd(filePath)
files = dir(filePath);
% oldName = cell(length(files)-2,1);%含有所有子文件夹名字的元胞数组前两个无效
for i = 1:length(files)-2
name={files(i+2,1).name(1:end-4)}
mkdir(name{1,1})
end
% file_name=dir(pwd)
for j = 1:length(files)-2
%load(files(3,1).name,'-mat')
movefile (files(j+2,1).name, files(j+2,1).name(1:end-4))
end
%% 转换数据为HERMES能识别格式
%本脚本输入数据为经过Homer2预处理的血氧数据;
%Edit by Guangyue Zhu
%homer数据
close
clear
clc
msgbox('请选择nirs所在文件夹')
 pause(2)
file_name=uigetdir();
data_name=dir([file_name,'\','*.nirs']);
mkdir HMS
data_length=[1:3600];%统一数据长度,需要修改
for i =1:length(data_name);
    load(data_name(i,1).name,'-mat');
    %if ~isempty(strfind(data_name(i,1).name,'L'))%%查找文件名里有没有L
   % hermes_data=nirs_data.oxyData;
   %hermes_data_original=squeeze(procResult.dc(data_length,1,:));
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%脑卒中翻转运动区,统一左侧为梗死区
   %hermes_data([2 14 15 1 13 16 26 20 21    12 29 30 11 28 27 25 32 31     34 33 18 19 23 24 4 17 6 8 22 10 3 5 7 9])=hermes_data_original([12 29 30 11 28 27 25 32 31     2 14 15 1 13 16 26 20 21    34 33 18 19 23 24 4 17 6 8 22 10 3 5 7 9])
    %clear nirs_data
    %disp(['complete','-----',data_name(i,1).name]);
     %save([file_name,'\','HMS','\',data_name(i,1).name(1:end-5),'Ltrans_hms.mat'],'hermes_data');
   % else
         hermes_data=squeeze(procResult.dc(data_length,1,:));
    disp(['complete','-----',data_name(i,1).name])
     save([file_name,'\','HMS','\',data_name(i,1).name(1:end-5),'_hms.mat'],'hermes_data');
    %end
end
%本脚本的功能是将.nirs转换为NIRS_SPM能够读取的.mat格式;
%运行前将Homer2加载到路径中;
%edited by Guangyue Zhu 2021/04/18
clear
clc
 msgbox('请选择nirs所在文件夹')
 pause(2)
file_name=uigetdir();
data_name=dir([file_name,'\','*.nirs']);
  %mkdir conv
  %mkdir connect_pro
for i = 1:length(data_name);
    load(data_name(i,1).name,'-mat');
    if length(SD.Lambda(:,:)) == 2
         dod = hmrIntensity2OD(d);
         dc = hmrOD2Conc(dod,SD,[6  6]);
         nirs_data.oxyData = squeeze(dc(:,1,:));
         nirs_data.dxyData = squeeze(dc(:,2,:));
         nirs_data.tHbData = squeeze(dc(:,3,:));
         delta_t = t(3,1)-t(2,1);
         nirs_data.fs =floor(1/delta_t);
         nirs_data.nch = size(dc,3);
         nirs_data.marks(:,1)=find(s(:,1));
         if length(s(1,:)) >=2
         nirs_data.marks(:,2)=find(s(:,2));
         end
         %转功能连接格式
%          deoxy=nirs_data.dxyData;
%          oxy=nirs_data.oxyData;
%          total=nirs_data.tHbData;
       % save([file_name,'\',data_name(i,1).name(1:end-5),'_FC.mat'],'deoxy','oxy','total');
         save([file_name,'\',data_name(i,1).name(1:end-5),'.mat'],'nirs_data');
     else
        dod = hmrIntensity2OD(d);
         dc = hmrOD2Conc(dod,SD,[6 6 6]);
        nirs_data.oxyData = squeeze(dc(:,1,:));
         nirs_data.dxyData = squeeze(dc(:,2,:));
         nirs_data.tHbData = squeeze(dc(:,3,:));
         delta_t = t(1,3)-t(1,2);
         nirs_data.fs = floor(1/delta_t);
         nirs_data.nch = size(dc,3);
         nirs_data.marks(:,1)=find(s(:,1));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%必要时修改mark号码
         if length(s(1,:)) >=2
         nirs_data.marks(:,2)=find(s(:,2));
         end
%          deoxy=nirs_data.dxyData;
%          oxy=nirs_data.oxyData;
%         total=nirs_data.tHbData;
%          save([file_name,'\','\',data_name(i,1).name(1:end-5),'_FC.mat'],'deoxy','oxy','total') ;
        save([file_name,'\','\',data_name(i,1).name(1:end-5),'.mat'],'nirs_data');
     end
     clear nirs_data
     disp(['complete','-----',data_name(i,1).name])
end

发表回复