private void GenSteadyPatternedMGData(int minTau, int maxTau, int tauSamples, int patternLength, double verifyRatio, string path) { CsvDataHolder trainingData = new CsvDataHolder(DelimitedStringValues.DefaultDelimiter); CsvDataHolder verificationData = new CsvDataHolder(DelimitedStringValues.DefaultDelimiter); int verifyBorderIdx = (int)(tauSamples * verifyRatio); for (int tau = minTau; tau <= maxTau; tau++) { MackeyGlassGenerator mgg = new MackeyGlassGenerator(new MackeyGlassGeneratorSettings(tau)); int neededDataLength = 1 + patternLength + (tauSamples - 1); double[] mggData = new double[neededDataLength]; for (int i = 0; i < neededDataLength; i++) { mggData[i] = mgg.Next(); } for (int i = 0; i < tauSamples; i++) { DelimitedStringValues patternData = new DelimitedStringValues(); //Steady data patternData.AddValue(tau.ToString(CultureInfo.InvariantCulture)); //Varying data for (int j = 0; j < patternLength; j++) { patternData.AddValue(mggData[i + j].ToString(CultureInfo.InvariantCulture)); } //Desired data 1 patternData.AddValue(mggData[i + patternLength].ToString(CultureInfo.InvariantCulture)); //Desired data 2 patternData.AddValue(mggData[i + patternLength].ToString(CultureInfo.InvariantCulture)); //Add to a collections if (i < verifyBorderIdx) { trainingData.DataRowCollection.Add(patternData); } else { verificationData.DataRowCollection.Add(patternData); } } } //Save files trainingData.Save(Path.Combine(path, "SteadyMG_train.csv")); verificationData.Save(Path.Combine(path, "SteadyMG_verify.csv")); return; }