ITE / code / H_I_D / meta_estimators / IShannon_HShannon_estimation.m

function [I] = IShannon_HShannon_estimation(Y,ds,co)
%Estimates Shannon mutual information (I) making use of an estimator for Shannon differential entropy; co is the cost object.
%This is a  "meta" method, using the relation: I(y^1,...,y^M) = \sum_{m=1}^MH(y^m)  - H([y^1,...,y^M]).
%  ds: subspace dimensions.
%  co: mutual information estimator object.
%	Thomas M. Cover, Joy A. Thomas. Elements of Information Theory, John Wiley and Sons, New York, USA (1991).

    num_of_comps = length(ds);%number of subspaces=:M
    cum_ds = cumsum([1;ds(1:end-1)]);%1,d_1+1,d_1+d_2+1,...,d_1+...+d_{M-1}+1 = starting indices of the subspaces

%I = - H([y^1,...,y^M]):
    I = -H_estimation(Y,co.member_co);
%I = I + \sum_{m=1}^MH(y^m):    
    for k = 1 : num_of_comps
        idx = [cum_ds(k) : cum_ds(k)+ds(k)-1];
        I = I + H_estimation(Y(idx,:),co.member_co);

Tip: Use camelCasing e.g. ProjME to search for