col_entropy.m

来自「为stanford大学donoho教授所编写的redgit变换源代码。是用c编写」· M 代码 · 共 33 行

M
33
字号
function ent = col_entropy(x, tent, pent)
% COL_ENTROPY  Compute entropy of each column of a matrix

n = size(x, 1);	

switch tent
    case 'shannon'
	x2 = x.^2;
	s = sum(x2) + eps;
	p = x2 ./ s(ones(n, 1), :);
	ent = -sum(p .* log(p + eps));
	
    case 'norm'
	y = abs(x);
	ent = sum(y.^pent);	
	
    case 'log'
	ent = sum(log(abs(x) + eps));
	
    case {'sure', 'SURE'}
        x2 = x.^2; 
	t2 = pent.^2;
        xgt = sum(x2 > t2);
	xlt = n - xgt;
        ent = n - (2 * xlt) + (t2 * xgt) + sum(x2 .* (x2 <= t2));
	
    otherwise
	error('Invalid entropy type');
end

prec = 1.0E-10;
ent(find(abs(ent) < prec)) = 0;

⌨️ 快捷键说明

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