%% 查找NIRS_KIT分析任务态后FDR矫正后的T值界限
clc
clear
msgbox(‘请选择MAT文件’)
pause(2)
% 使用uigetfile进行多文件选择
[file_names, file_path] = uigetfile(‘*.mat’, ‘选择MAT文件’, ‘MultiSelect’, ‘on’);
% 如果没有选择文件,退出
if isequal(file_names, 0)
disp(‘没有选择文件’);
return;
end
% 如果只有选择一个文件时,uigetfile返回的是字符串,转换为元胞数组以统一处理
if ischar(file_names)
file_names = {file_names};
end
T_margin_all = {};
T_margin_all{1,1} = ‘Name’;
T_margin_all{1,2} = ‘FDR_P_Thrd’;
T_margin_all{1,3} = ‘FDR_T_Thrd’;
for i = 1:length(file_names)
% 加载所选的.mat文件
load(fullfile(file_path, file_names{i}), ‘-mat’);
% 保存文件名
T_margin_all{i+1, 1} = file_names{i}(1:end-4); % 去除文件扩展名
% 检查是否存在FDR05_PThrd字段
if isfield(statdata, ‘FDR05_PThrd’)
if ~isempty(statdata.FDR05_PThrd)
P_margin_loc = find(statdata.p == statdata.FDR05_PThrd);
T_margin = statdata.stat(P_margin_loc);
T_margin_all{i+1, 2} = statdata.FDR05_PThrd;
T_margin_all{i+1, 3} = T_margin;
else
T_margin = ‘未通过矫正’;
T_margin_all{i+1, 2} = ‘未通过矫正’;
T_margin_all{i+1, 3} = ‘未通过矫正’;
end
else
T_margin = ‘未通过矫正’;
T_margin_all{i+1, 2} = ‘未通过矫正’;
T_margin_all{i+1, 3} = ‘未通过矫正’;
end
end
% 保存 T_margin_all 为 .mat 文件
save(‘T_margin_all.mat’, ‘T_margin_all’);