function e=entropy(x) %ENTROPY Entropy of a distribution. % E=ENTROPY(X) computes the entropy of the % distribution X. % % See also MI. % Copyright (c) 2008-2013 % Norbert Marwan, Potsdam Institute for Climate Impact Research, Germany % http://www.pik-potsdam.de % % Copyright (c) 1999-2008 % Norbert Marwan, Potsdam University, Germany % http://www.agnld.uni-potsdam.de % % $Date$ % $Revision$ % % $Log$ % Revision 2.4 2013/01/15 09:08:01 marwan % bug fix for empty vector % % Revision 2.3 2009/03/24 08:32:09 marwan % copyright address changed % % Revision 2.2 2005/04/06 12:58:08 marwan % changed from log2 to natural log % % Revision 2.1 2004/11/10 07:07:51 marwan % initial import % % % This program is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License % as published by the Free Software Foundation; either version 2 % of the License, or any later version. error(nargchk(1,1,nargin)); if nargout>1, error('Too many output arguments'), end if isempty(x) e = 0; else for j=1:size(x,2); x(:,j)=x(:,j)./sum(x(:,j)); x2=x(find(x(:,j)),j); e(:,j)=sum(-x2.*log(x2)); end end