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
 | |
| 
 |