卢家峰课程系列-- advanced rs-fmri analysis 3/6 SPM batch修改

卢家峰课程系列-- advanced rs-fmri analysis 3/6 SPM batch修改



前言

做批处理的时候,用代码的方法可以避免点选每个subject文件夹的繁琐,但需要习惯matlab的语法。


一、生成.mat文件

Show .m Code
在这里插入图片描述

复制bath code browser中的代码,在matlab的命令行中粘贴后,workspace中自动生成一个1*i cell的matlabbatch (i取决于建立了几个run batch)
在这里插入图片描述

matlabbatch右键可以save成一个.mat的文件。生成的.mat文件和在batch界面保存的.mat文件是一样的。

二、修改.mat文件

*每一个subject资料夹的要一致,此代码需要每个subject中有RESTING和T1两个文件夹。

matlab的代码:

%% select root folder with all subject's directories
dirname=uigetdir;
dirinfo=dir(firname); #读取资料夹中的list
dirinfo(1:2)=[];把前两个元素丢掉,赋值空矩阵

%% pick the subject's folder
targetdir={};#命名一个空矩阵
for i=1:length(dirinfo)
 if dirinfo(i).isdir==1 #第i个元素所存的资料夹label是1,则end
    targetdir=[targetdir,[dirname filesep dirinfo(i).name]]; #若上一步判断出是一个资料夹,则记录该资料夹的名称,即某个subject文件夹的完整路径;并进行矩阵堆叠;filesep等同于'\'
 end
end

%% identify the rsfMRI data within the RESTING folders
for i=1:length(dirinfo)
  targetfMRI{i}={};
  fMRIpath=[targetdir{i} '\''RESTING''\'];#进入某一个subjecti的RESTING文件夹
          =[targetdir{i} filesep'RESTING'filesep];#另一种写法:自动识别斜线形式,mac和windows不一样
  filrlist=dir([fMRIpath'f*.img']) #将读取出的f开头的.img结尾的文件赋值给filelist变量
  for j=1:length(filelist)
  targetfMRI{1}=[targetfMRI{1};[fMRIpath filelist(j).name',1']];#完整路径赋值到targetfMRI
  end
  
%% identify the T1 data within the T1 folders 
  targetT1{i}={}; #同样读取T1数据
  T1path=[targetdir{i} filesep'T1'filesep];
  filrlist=dir([T1path's*.img']) 
  for j=1:length(filelist)
  targetT1{1}=[targetT1{1};[T1path filelist(j).name',1']];
  end
end

%% create matlab batch file
for i=1:length(targetdir)
   原始代码部分
   第一个input--indir改为 targetdir(i);
   第二个input--innift改为  targetfMRI{i};
   第三个input--innift改为  targetT1{i};
end

最后将生成的.mat文件load到batch中,可以检查代码是否改写成功

2.变量的结果

targetdir
subject folder的绝对路径

filelist
一个包含了所有原始fmri数据的变量,以f开头.mat结尾

targetfMRI
1*i的cell,包含了i个subject的所有j个的fMRI原始data
在这里插入图片描述

targetT
1*i的cell,包含了i个subject的所有j个的T1原始data

Yolov的混淆矩阵是用来评估目标检测任务中模型的预测结果的准确性的一种常用方法。根据引用和引用的信息,混淆矩阵是根据预测结果和真实标签之间的对应关系来计算的。混淆矩阵的计算可以在Yolov5的val.py文件中找到,具体在confusion.process_batch函数中进行,该函数位于utils/metric.py文件中。混淆矩阵的计算过程是通过计算检测框detections和标注labels之间的IoU来得到的。 混淆矩阵的计算结果可以用来计算召回率和精确率。根据引用中提到的公式,混淆矩阵对角线上的数值已经是召回率了,而精确率可以通过将混淆矩阵还原成数量,然后在水平方向上进行计算得出。 根据引用的信息,以烟雾和火焰两个类别为例,混淆矩阵的输出结果可以看到烟雾和火焰的召回率分别为0.635和0.497。可以通过对比混淆矩阵和终端输出的召回率来进行分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [yolov5的混淆矩阵](https://blog.csdn.net/weixin_43745234/article/details/121561217)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [关于yolov5训练输出的混淆矩阵与终端输出的不一致问题](https://blog.csdn.net/weixin_43508499/article/details/123462288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值