spm_dcm_reduce.m 991 B

1234567891011121314151617181920212223242526272829303132333435
  1. function DCM = spm_dcm_reduce(DCM,rE,rC)
  2. % Reduce the posterior of DCM given new priors (rE,rC)
  3. % FORMAT RCM = spm_dcm_reduce(DCM,rE,rC)
  4. %__________________________________________________________________________
  5. % Copyright (C) 2015 Wellcome Trust Centre for Neuroimaging
  6. % Karl Friston
  7. % $Id: spm_dcm_reduce.m 6458 2015-05-27 16:22:09Z spm $
  8. % deal with cell arrays
  9. %--------------------------------------------------------------------------
  10. if iscell(DCM)
  11. for i = 1:numel(DCM)
  12. DCM{i} = spm_dcm_reduce(DCM{i},rE,rC);
  13. end
  14. return
  15. end
  16. % empirical prior and posterior densities
  17. %--------------------------------------------------------------------------
  18. pE = DCM.M.pE;
  19. pC = DCM.M.pC;
  20. qE = DCM.Ep;
  21. qC = DCM.Cp;
  22. % evaluate posteriors under original priors
  23. %--------------------------------------------------------------------------
  24. [F,sE,sC] = spm_log_evidence_reduce(qE,qC,pE,pC,rE,rC);
  25. DCM.M.pE = rE;
  26. DCM.M.pC = rC;
  27. DCM.Ep = sE;
  28. DCM.Cp = sC;
  29. DCM.F = F + DCM.F;