prior.m.txt

来自「这是马尔可夫-蒙特卡罗算法的MATLAB源程序.」· 文本 代码 · 共 26 行

TXT
26
字号
function [pv,b] = Prior(p,m)
% [pv,b] = Prior(p,m)
% Calculate value of prior for state p given model m
% Optionally returns b, a vector of booleans over nodes that is true
% if the node has different valued resistors attaching to the node.

% Colin Fox, 11 Jan 2003.

R = p.DR + p.DR';             % symmetric matrix of resistances

[nn,mm] = size(R);            % nn is the number of nodes
nr = length(m.Resistances);   % number of allowable resistances

ni = zeros(nr,nn);            % initialise number of each type
for cr = 1:nr                 % loop over types
    ni(cr,:) = sum(R==m.Resistances(cr)); % number of type cr at each node
end

dv = sum(ni).^2 - sum(ni.^2); % number of differences at each node
sv = sum(ni.^2) - sum(ni);    % number the same at each node

if nargout > 1
    b = dv ~= 0;
end

pv = exp(m.Theta*sum(sv));    % sum is over nodes

⌨️ 快捷键说明

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