aboutsummaryrefslogtreecommitdiff
path: root/FEAST/MIToolbox/cmi.m
diff options
context:
space:
mode:
Diffstat (limited to 'FEAST/MIToolbox/cmi.m')
-rw-r--r--FEAST/MIToolbox/cmi.m31
1 files changed, 31 insertions, 0 deletions
diff --git a/FEAST/MIToolbox/cmi.m b/FEAST/MIToolbox/cmi.m
new file mode 100644
index 0000000..30e4bb0
--- /dev/null
+++ b/FEAST/MIToolbox/cmi.m
@@ -0,0 +1,31 @@
+function output = cmi(X,Y,Z)
+%function output = cmi(X,Y,Z)
+%X, Y & Z can be matrices which are converted into a joint variable
+%before computation
+%
+%expects variables to be column-wise
+%
+%returns the mutual information between X and Y conditioned on Z, I(X;Y|Z)
+
+if nargin == 3
+ if (size(X,2)>1)
+ mergedFirst = MIToolboxMex(3,X);
+ else
+ mergedFirst = X;
+ end
+ if (size(Y,2)>1)
+ mergedSecond = MIToolboxMex(3,Y);
+ else
+ mergedSecond = Y;
+ end
+ if (size(Z,2)>1)
+ mergedThird = MIToolboxMex(3,Z);
+ else
+ mergedThird = Z;
+ end
+ [output] = MIToolboxMex(8,mergedFirst,mergedSecond,mergedThird);
+elseif nargin == 2
+ output = mi(X,Y);
+else
+ output = 0;
+end