sample_node.m

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

M
23
字号
function y = sample_node(CPD, pev)% SAMPLE_NODE Draw a random sample from P(Xi | x(pi_i), theta_i)  (gaussian)% y = sample_node(CPD, parent_evidence)%% pev{i} is the value of the i'th parent (if there are any parents)% y is the sampled value (a scalar or vector)if length(CPD.dps)==0  i = 1;else  dpvals = cat(1, pev{CPD.dps});  i = subv2ind(CPD.sizes(CPD.dps), dpvals(:)');endif length(CPD.cps) == 0   y = gsamp(CPD.mean(:,i), CPD.cov(:,:,i), 1);else  pev = pev(:);  x = cat(1, pev{CPD.cps});  y = gsamp(CPD.mean(:,i) + CPD.weights(:,:,i)*x(:), CPD.cov(:,:,i), 1);endy = y(:);

⌨️ 快捷键说明

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