marg_table_ndxsd.m
来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· M 代码 · 共 46 行
M
46 行
function smallT = marg_table_ndxSD(bigT, maximize, ndx)
% MARG_TABLE_NDX Marg a dtable onto a smaller domain.
% function smallT = marg_table_ndx(bigT, maximize, ndx)
small_ndx = double(ndx.small);
diff_ndx = double(ndx.diff);
S = length(small_ndx);
D = length(diff_ndx);
if 0
if maximize
for i=1:S
m = -inf;
for j=1:D
k = diff_ndx(j) + small_ndx(i) + 1;
m = max(m, bigT(k));
end
smallT(i) = m;
end
else
for i=1:S
s = 0;
for j=1:D
k = diff_ndx(j) + small_ndx(i) + 1;
s = s + bigT(k);
end
smallT(i) = s;
end
end
else
big_ndx = 1 + repmat(diff_ndx, S, 1) + repmat(small_ndx(:), 1, D); % ndx(i,j) = k above
if S==1 % sum all of bigT down to a scalar - Matlab incorrectly converts row vector to column
if maximize
smallT = max(bigT(big_ndx));
else
smallT = sum(bigT(big_ndx));
end
else
if maximize
smallT = max(bigT(big_ndx), [], 2);
else
smallT = sum(bigT(big_ndx), 2);
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?