大家好:
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);
红色的地方总是报错,请大家帮我看看 谢谢!
Submitted by YAN Chao-Gan on Sat, 11/17/2012 - 00:00 Permalink
Re: 提取ReHo、ALFF代码总是出错(一个地方)请大家看看
你好!
不知道你的程序出处是什么地方,要执行何种处理。但我猜想你的问题是61,61,73应该改成61,73,61。
Submitted by lwz110911 on Sat, 11/17/2012 - 14:05 Permalink
Re: 提取ReHo、ALFF代码总是出错(一个地方)请大家看看
谢谢严老师的回复,我改好了!