wolffd@0: function H = entropy(v, scale) wolffd@0: % ENTROPY Entropy log base 2 wolffd@0: % H = entropy(v) wolffd@0: % If v is a matrix, we compute the entropy of each column wolffd@0: % wolffd@0: % % H = entropy(v,1) means we scale the result so that it lies in [0,1] wolffd@0: wolffd@0: if nargin < 2, scale = 0; end wolffd@0: wolffd@0: v = v + (v==0); wolffd@0: H = -1 * sum(v .* log2(v), 1); % sum the rows wolffd@0: wolffd@0: if scale wolffd@0: n = size(v, 1); wolffd@0: unif = normalise(ones(n,1)); wolffd@0: H = H / entropy(unif); wolffd@0: end