about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/KPMtools/entropy.m
diff options
context:
space:
mode:
Diffstat (limited to 'sourcecodes/bnt-master/KPMtools/entropy.m')
-rw-r--r--sourcecodes/bnt-master/KPMtools/entropy.m17
1 files changed, 17 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/KPMtools/entropy.m b/sourcecodes/bnt-master/KPMtools/entropy.m
new file mode 100644
index 00000000..d879cc48
--- /dev/null
+++ b/sourcecodes/bnt-master/KPMtools/entropy.m
@@ -0,0 +1,17 @@
+function H = entropy(v, scale)
+% ENTROPY Entropy log base 2
+% H = entropy(v)
+% If v is a matrix, we compute the entropy of each column
+%
+% % H = entropy(v,1) means we scale the result so that it lies in [0,1]
+
+if nargin < 2, scale = 0; end
+
+v = v + (v==0);
+H = -1 * sum(v .* log2(v), 1); % sum the rows
+
+if scale
+  n = size(v, 1);
+  unif = normalise(ones(n,1));
+  H = H / entropy(unif);
+end