0001 function [slice] = spm_vb_taylor_R (Y,slice)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 h0=[];
0012 if slice.p > 0
0013 a=mean(slice.ap_mean');
0014 a_covs=cat(3,slice.a_cov{:});
0015 a_cov=mean(a_covs,3);
0016 slice.mean.a=a;
0017 slice.mean.a_cov=a_cov;
0018 h0=a';
0019 end
0020
0021 slice.mean.b=mean(slice.b');
0022
0023 lambda=mean(slice.mean_lambda);
0024 slice.mean.lambda=lambda;
0025 h0=[h0;lambda];
0026
0027 R=spm_vb_get_R(slice,h0);
0028 slice.mean.R=R;
0029
0030 delta=0.0001;
0031
0032
0033 for i=1:length(h0),
0034 h=h0;
0035 h(i)=h(i)-delta;
0036
0037 [R1]=spm_vb_get_R(slice,h);
0038
0039 h=h0;
0040 h(i)=h(i)+delta;
0041
0042 [R2]=spm_vb_get_R(slice,h);
0043
0044 dR(:,:,i)=(R2-R1)/(2*delta);
0045 end
0046 slice.mean.h0=h0;
0047 slice.mean.dR=dR;