//========================================================= // //This is a prog in the MutualInfo 0.9 package written by // Hanchuan Peng. // //Disclaimer: The author of program is Hanchuan Peng // at and . // //The CopyRight is reserved by the author. // //Last modification: April/19/2002 // //======================================================== // //calculate the conditional entropy H(X|Y) //refined by Hanchuan Peng //April/2002 #include "miinclude.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { if(nrhs != 2 && nrhs!=1) mexErrMsgTxt("Usage [mutual_info] = progname(jointprob_table, marginprob_2). The last two inputs are optional."); if(nlhs > 1) mexErrMsgTxt("Too many output argument ."); //check if parameters are correct long i,j; double *pab = mxGetPr(prhs[0]); long pabhei = mxGetM(prhs[0]); long pabwid = mxGetN(prhs[0]); double *pb = mxGetPr(prhs[1]); long pblen = mxGetM(prhs[1])*mxGetN(prhs[1]); if (pblen!=pabwid) { mexErrMsgTxt("Unmatched size: length of the second much be the same as the column of the first."); } double **pab2d = new double * [pabwid]; for(j=0;j