Mercurial > hg > camir-ismir2012
annotate toolboxes/FullBNT-1.0.7/KPMstats/condGaussToJoint.m @ 0:cc4b1211e677 tip
initial commit to HG from
Changeset:
646 (e263d8a21543) added further path and more save "camirversion.m"
author | Daniel Wolff |
---|---|
date | Fri, 19 Aug 2016 13:07:06 +0200 |
parents | |
children |
rev | line source |
---|---|
Daniel@0 | 1 function [muXY, SigmaXY] = condGaussToJoint(muX, SigmaX, muY, SigmaY, WYgivenX) |
Daniel@0 | 2 |
Daniel@0 | 3 % Compute P(X,Y) from P(X) * P(Y|X) where P(X)=N(X;muX,SigmaX) |
Daniel@0 | 4 % and P(Y|X) = N(Y; WX + muY, SigmaY) |
Daniel@0 | 5 |
Daniel@0 | 6 % For details on how to compute a Gaussian from a Bayes net |
Daniel@0 | 7 % - "Gaussian Influence Diagrams", R. Shachter and C. R. Kenley, Management Science, 35(5):527--550, 1989. |
Daniel@0 | 8 |
Daniel@0 | 9 % size(W) = dy x dx |
Daniel@0 | 10 dx = length(muX); |
Daniel@0 | 11 dy = length(muY); |
Daniel@0 | 12 muXY = [muX(:); WYgivenX*muX(:) + muY]; |
Daniel@0 | 13 |
Daniel@0 | 14 W = [zeros(dx,dx) WYgivenX'; |
Daniel@0 | 15 zeros(dy,dx) zeros(dy,dy)]; |
Daniel@0 | 16 D = [SigmaX zeros(dx,dy); |
Daniel@0 | 17 zeros(dy,dx) SigmaY]; |
Daniel@0 | 18 |
Daniel@0 | 19 U = inv(eye(size(W)) - W')'; |
Daniel@0 | 20 SigmaXY = U' * D * U; |
Daniel@0 | 21 |
Daniel@0 | 22 |