about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine
diff options
context:
space:
mode:
Diffstat (limited to 'sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine')
-rw-r--r--sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m18
-rw-r--r--sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m~18
2 files changed, 36 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m
new file mode 100644
index 00000000..220690ce
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m
@@ -0,0 +1,18 @@
+function marginal = marginal_nodes_no_ev(bnet,engine, query)
+% MARGINAL_NODES Get original distribution of the specified query nodes (jtree)
+% marginal = marginal_nodes(bnet, engine, query)
+%
+
+if ismember(query,bnet.dnodes)
+  marginal.domain = query;
+  marginal.T = CPD_to_CPT_orig(bnet.CPD{query});
+  marginal.mu = [];
+  marginal.Sigma = [];
+else
+  c = clq_containing_nodes(engine, query);
+  if c == -1
+    error(['no clique contains ' num2str(query)]);
+  end
+  marginal = pot_to_marginal(marginalize_pot(engine.clpot{c}, query, engine.maximize));
+end
+
diff --git a/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m~ b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m~
new file mode 100644
index 00000000..220690ce
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/static/@jtree_inf_engine/marginal_nodes_no_ev.m~
@@ -0,0 +1,18 @@
+function marginal = marginal_nodes_no_ev(bnet,engine, query)
+% MARGINAL_NODES Get original distribution of the specified query nodes (jtree)
+% marginal = marginal_nodes(bnet, engine, query)
+%
+
+if ismember(query,bnet.dnodes)
+  marginal.domain = query;
+  marginal.T = CPD_to_CPT_orig(bnet.CPD{query});
+  marginal.mu = [];
+  marginal.Sigma = [];
+else
+  c = clq_containing_nodes(engine, query);
+  if c == -1
+    error(['no clique contains ' num2str(query)]);
+  end
+  marginal = pot_to_marginal(marginalize_pot(engine.clpot{c}, query, engine.maximize));
+end
+