0001 function [slice] = spm_vb_lambda (Y,slice)
0002
0003
0004
0005
0006
0007
0008
0009
0010 if slice.verbose
0011 disp('Updating lambda');
0012 end
0013
0014 for n=1:slice.N,
0015 if slice.p > 0
0016
0017 Gn = spm_vb_get_Gn (Y,slice,n);
0018 else
0019 block_n = [(n-1)*slice.k+1:n*slice.k];
0020 en=(Y(:,n)-slice.X*slice.w_mean(block_n,1));
0021 Gn=trace(slice.w_cov{n}*slice.XTX)+en'*en;
0022 end
0023
0024 slice.b_lambda(n,1) = 1./(Gn./2 + 1./slice.b_lambda_prior);
0025 slice.mean_lambda(n,1) = slice.c_lambda(n)*slice.b_lambda(n);
0026 end
0027