www.pudn.com > MutualInformationICA.zip > MIhigherdim.C
//#################################################################### //Mutual information estimator (with embedding), rectangular version //#################################################################### //2 May 2004 //Contact: kraskov@its.caltech.edu //#################################################################### //uses redr_embed #include#include #include #include #include #include #include "miutils.h" int main(int argc, char **argv) { FILE *fin; int i; double **x; double *min; double *max; double *psi; int K,N; int d; double mir; int dim,edim,tau; double s,me; double addnoise=-1; if (argc<7) { fprintf(stderr,"\nMutual Infomation (MI) k-nearest neighbours statistics (rectangular)\n\n"); fprintf(stderr,"Usage:\n%s <# points> <# neighbours> [addnoise]\n\n",argv[0]); fprintf(stderr,"Input:\n\t \ttext file with columns and <# points> rows\n"); fprintf(stderr,"\t \t\tnumber of columns in file\n"); fprintf(stderr,"\t \t\tembedding dimension\n"); fprintf(stderr,"\t \t\tembedding delay\n"); fprintf(stderr,"\t<# points>\tnumber of rows (length of characteristic vector)\n"); fprintf(stderr,"\t<# neighbours>\tnumber of the nearest neighbours for MI estimator\n"); fprintf(stderr,"\t[addnoise]\tnoise amplitude; default 1e-8\n"); fprintf(stderr,"\nOutput:\n"); fprintf(stderr,"\nMI\n"); fprintf(stderr,"\nContact: kraskov@its.caltech.edu\n"); exit(-1); } dim=atoi(argv[2]); edim=atoi(argv[3]); tau=atoi(argv[4]); N=atoi(argv[5]); K=atoi(argv[6]); if (argc==8) {addnoise=atof(argv[7]);} if (argc>=9) {fprintf(stderr,"Too many input arguments\n");exit(-1);} x=(double**)calloc(dim,sizeof(double*)); for (d=0;d max[d]) max[d]=x[d][i]; } for (i=0;i