public static MatrixCube <T> ToArrayCube(T[][] source) { int layer = source.GetLength(0); MatrixCube <T> cube = new MatrixCube <T>(layer, true); for (int i = 0; i < layer; i++) { cube.LayeredSerialValue[i] = source[i]; } return(cube); }
/// <summary> /// extract subset from the given matrix and save it to a ac file /// </summary> /// <param name="serialMatrix">2D serial matrix</param> /// <param name="indexes">indexes of subset</param> /// <param name="varName">name of variable</param> /// <param name="acfile">ac filename</param> public static void Extract2AcFile(MatrixCube <float> serialMatrix, int[] indexes, string varName, string acfile) { int steps = serialMatrix.LayeredSerialValue.Length; int nfea = indexes.Length; float[][][] ac = new float[1][][]; ac[0] = new float[steps][]; for (int s = 0; s < steps; s++) { ac[0][s] = new float[nfea]; } for (int s = 0; s < steps; s++) { for (int i = 0; i < nfea; i++) { ac[0][s][i] = serialMatrix.LayeredSerialValue[s][indexes[i]]; } } AcFile acf = new AcFile(); acf.Save(acfile, ac, new string[] { varName }); ac = null; }