21 lines
747 B
Matlab
21 lines
747 B
Matlab
function R = shortcut(Ab, frontals, separators)
|
|
%SHORTCUT This is a simple scalar-level function for computing a "shortcut"
|
|
%of frontals conditioned on separators. Note that the input matrix Ab is
|
|
%assumed to have a RHS vector in its right-most column, thus this rightmost
|
|
%column index should not be listed in either frontals or separators. This
|
|
%function computes p(frontals | separators), marginalizing out all other
|
|
%variables (cooresponding to columns) in Ab.
|
|
|
|
% First marginalize out all others
|
|
cols = 1:size(Ab,2)-1;
|
|
toMarginalizeOut = setdiff(cols, [ frontals separators ]);
|
|
[ cond marg ] = eliminate(Ab, toMarginalizeOut);
|
|
|
|
% Now eliminate the frontals to get the conditional
|
|
[ cond marg ] = eliminate(marg, frontals);
|
|
|
|
R = cond;
|
|
|
|
end
|
|
|