getmarginals.m

来自「基于变分贝叶斯方法的状态空间模型学习程序」· M 代码 · 共 25 行

M
25
字号
%Function to calculate single node marginals and cross-time (pairwise) marginals.%%v3.0 Matthew J. Beal GCNU 01/03/03function [Xm_Y,Xci_Y,Ups_Y,X0m_Y,X0ci_Y,Ups0_Y] = getmarginals(Xm_a,Xci_a,Xm_b,Xci_b,X0m_p,X0ci_p,X0m_b,X0ci_b,A,AA,CrhoC)[k T] = size(Xm_a);Xci_Y = zeros(k,k,T);Xm_Y = zeros(k,T);Ups_Y = zeros(k,k,T-1);  t = 0;  X0ci_Y       =                           X0ci_p           +       X0ci_b            ;  X0m_Y        =       inv(X0ci_Y)*(       X0ci_p*X0m_p     +       X0ci_b*X0m_b     );for t = 1:T  Xci_Y(:,:,t) =                     Xci_a(:,:,t)           + Xci_b(:,:,t)            ;  Xm_Y(:,t)    = inv(Xci_Y(:,:,t))*( Xci_a(:,:,t)*Xm_a(:,t) + Xci_b(:,:,t)*Xm_b(:,t) );end  Ups0_Y       = inv(X0ci_p      +AA) *A' *inv( eye(k,k) + CrhoC + Xci_b(:,:,1)   - A*inv(X0ci_p      +AA)*A' );for t = 1:(T-1)  Ups_Y(:,:,t) = inv(Xci_a(:,:,t)+AA) *A' *inv( eye(k,k) + CrhoC + Xci_b(:,:,t+1) - A*inv(Xci_a(:,:,t)+AA)*A' );end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?