コード例 #1
0
        public static float[][] Summerize(float[][][] matrix, int[] intevals, int flag)
        {
            int len   = matrix[0].Length;
            int steps = intevals.Length;
            int nfea  = matrix[0][0].Length;
            int nvar  = matrix.Length;

            float[][] stat = new float[nvar][];
            for (int v = 0; v < nvar; v++)
            {
                stat[v] = new float[steps];
            }
            float[] temp = new float[nfea];
            int     cur  = 0;

            for (int v = 0; v < nvar; v++)
            {
                for (int s = 0; s < steps; s++)
                {
                    int inteval = intevals[s];
                    for (int t = 0; t < inteval; t++)
                    {
                        for (int i = 0; i < nfea; i++)
                        {
                            temp[i] += matrix[v][cur][i];
                        }
                        cur++;
                    }
                    if (flag == 1)
                    {
                        stat[v][s] = temp.Average() / inteval;
                    }
                    else if (flag == 2)
                    {
                        stat[v][s] = temp.Sum() / inteval;
                    }
                    MatrixExtension <float> .Set(temp, 0);
                }
            }

            return(stat);
        }