提取ReHo、ALFF代码总是出错(一个地方)请大家看看

Submitted by lwz110911 on

  大家好:
   function bold=read_img(file,p,hz,zz)
   fid=fopen(file, 'r');
   [a_func,count]=fread(fid,'long');
   count;
   bold=reshape(a_func,hz,zz,p);
   fclose(fid);
   end


function [ output_args ] = jinxi_chuli( path,p,hz,zz,t,w)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
%path是路径
%p是z轴
%hz是横轴
%zz是纵轴
%t为希望转化的列数
%w为文件中包含.img的个数

%产生该被试的cell,包含m*10个矩阵
%静息态的数据一般是200多个,郭老师的数据是 238个
%可以添加程序,这里w可以利用结构体计算文件中.img文件的个数
%可以修改,设置最后生成的文件名
bold_ps=cell(1,w);
bold_effect_ps=cell(1,w);

%这里设置需要修改,因为有些.img文件不一定是从1开始的
  for j=1:w  %每个trial包含10个scan,h是每个任务包含的img文件的个数
        %            scan=['scan=' num2str(j)]
        scan_trial_m=j;%获取该trial每个scan对应的img文件
        %判断trial的位数,添加适当的0,以便构造需要读取的img文件名
         if ceil(log10(scan_trial_m+1))==1  img_file=['0000000' num2str(scan_trial_m) '.img'];
        end;
        if ceil(log10(scan_trial_m+1))==2  img_file=['000000' num2str(scan_trial_m) '.img'];
        end;
        if ceil(log10(scan_trial_m+1))==3  img_file=['00000' num2str(scan_trial_m) '.img'];
        end;
        if ceil(log10(scan_trial_m+1))==4  img_file=['0000' num2str(scan_trial_m) '.img'];
        end;
        if ceil(log10(scan_trial_m+1))==5  img_file=[ num2str(scan_trial_m) '.img'];
        end;
%t为界面输入的.img文件的路径
        file=[path  img_file];
        %读取该trial对应的bold灰度值,并保存于cell对应位置
        bold_trial=read_img(file,p,hz,zz);
        bold_ps{1,j}=bold_trial;
  end;
save ('bold_ps');
  
base_m=(bold_ps{1,1}+bold_ps{1,2})/2;
for j=1:w
    bold_effect_ps{1,j}=(bold_ps{1,j}-base_m)./base_m;
end;
for k=1:w
        bold_effect_ps{1,k}(find(isnan(bold_effect_ps{1,k})==1)) = 0;
end;
save ('bold_effect_ps');

%将61*61*73的坐标系按照模板找到的体素坐标转换为2维矩阵

%注意模板的名字随着定义模板的名字而更改
load Template.mat
[voxel_count,n]=size(Template);
bold_effect_voxel=zeros(voxel_count,t);
for i=1:voxel_count
%     bold_effect_voxel(i,1:3)= all_voxel(i,1:3);
    for j=1:t
        temp= bold_effect_ps{1,j};
        bold_effect_voxel(i,j)=temp(Template(i,1),Template(i,2),Template(i,3));
        %bold_effect_voxel(i,j)(num2str(bold_effect_voxel(i,j))==1)) = 0;
    end;
end;
save (' bold_effect_voxel' );

tishi='Task is completed !'
msgbox(tishi);

   红色的地方总是报错,请大家帮我看看  谢谢!

Forums