info_dis_fdod_calc.m
来自「计算Information Discrepancy中的FDOD函数集」· M 代码 · 共 21 行
M
21 行
function [Bk B R]=info_dis_FDOD_calc(U)
Bk=[];
[s ml]=size(U);
rowSum=sum(U,1);
for i=1:s
tmp=0;
for j=1:ml
% 规定 0*log0 = 0*log(0/0) = 0
% 这需要判断 U(i,j)是否等于0, 因为如果U(i,j)~=0, 由于U(i,j)>0
% 则该列和rowSum(j)必然>=U(i,j)从而必然~=0.
% 如果U(i,j)==0, 则内循环直接跳至下次循环
if U(i,j)~=0
tmp=tmp+U(i,j)*(log(U(i,j))-log(rowSum(j))+log(s));
end
end
Bk=[Bk tmp];
end
clear i j tmp;
B=sum(Bk);
R=B/(s*log(s));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?