Mercurial > hg > camir-aes2014
annotate toolboxes/FullBNT-1.0.7/bnt/general/hodbn_to_bnet.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
rev | line source |
---|---|
wolffd@0 | 1 function bnet = hodbn_to_bnet(dbn, T) |
wolffd@0 | 2 % DBN_TO_BNET Convert a DBN to a static network by unroll for T slices |
wolffd@0 | 3 % bnet = dbn_to_bnet(dbn, T) |
wolffd@0 | 4 ss = length(dbn.intra); |
wolffd@0 | 5 [row,order] = size(dbn.equiv_class); |
wolffd@0 | 6 eclass = []; |
wolffd@0 | 7 for i = 1:min(order,T) |
wolffd@0 | 8 eclass = [eclass ; dbn.equiv_class(:,i)]; |
wolffd@0 | 9 end |
wolffd@0 | 10 if T > order |
wolffd@0 | 11 eclass = [eclass ; repmat(dbn.equiv_class(:,order),T-order,1)]; |
wolffd@0 | 12 end |
wolffd@0 | 13 |
wolffd@0 | 14 dnodes = unroll_set(dbn.dnodes_slice, ss, T); |
wolffd@0 | 15 ns = repmat(dbn.node_sizes_slice(:), 1, T); |
wolffd@0 | 16 dag = unroll_higher_order_topology(dbn.intra, dbn.inter, T, dbn.intra1); |
wolffd@0 | 17 onodes = unroll_set(dbn.observed(:), ss, T); |
wolffd@0 | 18 bnet = mk_bnet(dag, ns(:), 'discrete', dnodes(:), 'equiv_class', eclass(:), 'observed', onodes(:)); |
wolffd@0 | 19 bnet.CPD = dbn.CPD; |
wolffd@0 | 20 |
wolffd@0 | 21 |