mutual_information_normal.m

Back to Mutual information

matlab/+tim/

% MUTUAL_INFORMATION_NORMAL
% Mutual information between marginals of a normal distribution.
%
% I = mutual_information_normal(productDetCov, jointDetCov, ...
%                               'key', value, ...)
%
% PRODUCTDETCOV is a positive real number which specifies the 
% product of the determinants of the covariance matrices of the 
% normally distributed random variables X_i, where i in [1, p]. 
%
% JOINTDETCOV is a positive real number which specifies the determinant
% of the covariance matrix of the normally distributed random variable 
% X = (X_1, ..., X_p).
%
% When p > 2, the mutual information computed here is called 
% total correlation. The most common case is to have p = 2.

% Description: Mutual information between marginals of a normal distribution.
% Documentation: mutual_information.txt

function I = mutual_information_normal(...
    productDetCov, jointDetCov, varargin)

import([tim_package, '.*']);

concept_check(nargin, 'inputs', 2);
concept_check(nargout, 'outputs', 0 : 1);

pastelmatlab.concept_check(...
    productDetCov, 'real', ...
    productDetCov, 'positive', ...
    jointDetCov, 'real', ...
    jointDetCov, 'positive');

I = tim_matlab('mutual_information_normal', ...
    productDetCov, jointDetCov);