matthiasm@8: function sd = dojsdiv2(pre,post); matthiasm@8: matthiasm@8: pre = pre-min(pre); matthiasm@8: post = post-min(post); matthiasm@8: pre = pre(:)'; matthiasm@8: post = post(:)'; matthiasm@8: pre = pre+eps; matthiasm@8: post = post+eps; matthiasm@8: pre = pre/sum(pre); matthiasm@8: matthiasm@8: pi1 = 0.5; matthiasm@8: pi2 = 0.5; matthiasm@8: matthiasm@8: % normalise to sum to unity matthiasm@8: pre = pre/(sum(pre)+eps); matthiasm@8: post = post/(sum(post)+eps); matthiasm@8: matthiasm@8: % combined distribution matthiasm@8: a1 = pi1*pre + pi2*post; matthiasm@8: matthiasm@8: %sd = -sum(a1.*log(a1)) + pi1*sum(pre.*log(pre)) + pi2*sum(post.*log(post)); matthiasm@8: matthiasm@8: matthiasm@8: sd = sum((-a1.*log(a1)) + pi1*(pre.*log(pre)) + pi2*(post.*log(post)));