sample_bnet.m

来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· M 代码 · 共 35 行

M
35
字号
function sample = sample_bnet(bnet, varargin)
% SAMPLE_BNET Generate a random sample from a Bayes net.
% SAMPLE = SAMPLE_BNET(BNET, ...)
%
% sample{i} contains the value of the i'th node.
% i.e., the result is an Nx1 cell array.
% Nodes are sampled in the order given by bnet.order.
%
% Optional arguments:
%
% evidence - initial evidence; if evidence{i} is non-empty, node i won't be sampled.

% set defauly params
n = length(bnet.dag);
sample = cell(n,1);

% get optional params
args = varargin;
nargs = length(args);
for i=1:2:nargs
  switch args{i},
   case 'evidence',    sample = args{i+1}(:);
   otherwise, error(['unrecognized argument ' args{i}])
  end
end

for j=bnet.order(:)'
  if isempty(sample{j})
    %ps = parents(bnet.dag, j);
    ps = bnet.parents{j};
    e = bnet.equiv_class(j);
    sample{j} = sample_node(bnet.CPD{e}, sample(ps));
  end
end

⌨️ 快捷键说明

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