0001 function [slice] = spm_vb_beta (Y,slice)
0002
0003
0004
0005
0006
0007
0008
0009
0010 if slice.verbose
0011 disp('Updating beta');
0012 end
0013
0014 N=slice.N;
0015 p=slice.p;
0016
0017
0018 for n=1:N,
0019 for j = 1:p,
0020 a_cov_p(n,j) = slice.a_cov{n}(j,j);
0021 end
0022 end
0023
0024 for j = 1:p,
0025 block_p = j:p:N*p;
0026 H = sum(spdiags(slice.D,0).*a_cov_p(:,j)) + slice.a_mean(block_p)'*slice.D*slice.a_mean(block_p);
0027
0028 slice.b_beta(j) = 1./(H./2 + 1./slice.b_beta_prior);
0029 slice.mean_beta(j) = slice.c_beta(j)*slice.b_beta(j);
0030 end
0031
0032