0001 function [R] = spm_vb_get_R (slice,h0)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 lambda=h0(end);
0013 k=slice.k;
0014 p=slice.p;
0015 T=slice.T;
0016 X=slice.X;
0017
0018
0019
0020 if (slice.p==0)
0021 A=X'*X;
0022 else
0023 a=h0(1:slice.p);
0024 x_err = zeros(T-p,k);
0025 XtilVXtil = zeros(k);
0026 for t=p+1:T,
0027 x_err (t-p,:) = X(t,:) - a'*slice.dX(:,:,t-p);
0028 aa = slice.dX(:,:,t-p)'*slice.mean.a_cov;
0029 XtilVXtil = XtilVXtil + aa*slice.dX(:,:,t-p);
0030 end
0031 A = x_err'*x_err + XtilVXtil;
0032 end
0033
0034 P=lambda*A+diag(slice.mean.b);
0035 C=inv(P);
0036 d = diag(C);
0037 R = C./sqrt(d*d');
0038