marg_table.m

来自「用matlab实现贝叶斯网络的学习、推理。」· M 代码 · 共 28 行

M
28
字号
function smallT = marg_table(bigT, bigdom, bigsz, onto, maximize)% MARG_TABLE Marginalize a table% smallT = marg_table(bigT, bigdom, bigsz, onto, maximize)if nargin < 5, maximize = 0; endsmallT = myreshape(bigT, bigsz); % make sure it is a multi-dim arraysum_over = mysetdiff(bigdom, onto);ndx = find_equiv_posns(sum_over, bigdom);if maximize  for i=1:length(ndx)    smallT = max(smallT, [], ndx(i));  endelse  for i=1:length(ndx)    smallT = sum(smallT, ndx(i));  endendns = zeros(1, max(bigdom));%ns(bigdom) = mysize(bigT); % ignores trailing dimensions of size 1ns(bigdom) = bigsz;smallT = squeeze(smallT); % remove all dimensions of size 1smallT = myreshape(smallT, ns(onto)); % put back relevant dims of size 1

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?