示例#1
0
 public bool check(int index)
 {
     if (encode[index] == null)
     {
         return(true);
     }
     if (DTW.encFit(encode[index], vencode) != -1)
     {
         return(true);
     }
     return(false);
 }
示例#2
0
        public bool update()
        {
            encode[10] = vencode;
            byte[] match = new byte[NUMOFENCODE + 1];
            int[]  err = new int[NUMOFENCODE + 1];
            int    errt, errminmax, min, max, imin = 0, imax = NUMOFENCODE, minmax;

            err[0] = 0;
            for (int i = 1; i < NUMOFENCODE + 1; i++)
            {
                err[i] = 0;
                for (int j = 0; j < i; j++)
                {
                    errt = DTW.encFit(encode[j], encode[i]);
                    if (errt == -1)
                    {
                        errt = DTW.encFit(encode[i], encode[j]);
                    }
                    if (errt == -1)
                    {
                        match[i]++;
                        match[j]++;
                    }
                    else
                    {
                        err[i] += errt;
                        err[j] += errt;
                    }
                }
            }
            minmax    = 12;
            errminmax = 1000000000;
            for (int i = 0; i < err.Length; i++)
            {
                if (match[i] < minmax)
                {
                    minmax = match[i];
                }
            }
            for (int i = 0; i < err.Length; i++)
            {
                if (match[i] == minmax && err[i] < errminmax)
                {
                    errminmax = err[i];
                    imin      = i;
                }
            }
            minmax    = 0;
            errminmax = 0;
            for (int i = 0; i < err.Length; i++)
            {
                if (match[i] > minmax)
                {
                    minmax = match[i];
                }
            }
            for (int i = 0; i < err.Length; i++)
            {
                if (match[i] == minmax && err[i] > errminmax)
                {
                    errminmax = err[i];
                    imax      = i;
                }
            }
            List <sPoint> tencode;

            tencode                         = encode[0];
            encode[0]                       = encode[imin];
            encode[imin]                    = tencode;
            tencode                         = encode[NUMOFENCODE];             //for create only update change to 10
            encode[NUMOFENCODE]             = encode[imax == 0 ? imin : imax]; //for create only update change to 10
            encode[imax == 0 ? imin : imax] = tencode;
            return(true);
        }