private void WriteLinetoCSVArray(CSVFiler csvFile, double[] x, double[] e, double[] y) { csvFile.NewRow(); csvFile.AddToRow(0 /*IntegerVectorData.ValueToString(i)*/); csvFile.AddToRow(DoubleVectorData.ValueToString(x)); csvFile.AddToRow(DoubleVectorData.ValueToString(e)); csvFile.AddToRow(DoubleVectorData.ValueToString(y)); csvFile.WriteRow(); }
private void WriteResults() { //using (var csvFile = new CSVFiler(CsvPath)) //{ // var parametersLookup = Mission.Segments.SelectMany(s => s.Parameters.Select(p => (p, s.Times))).ToLookup(t => t.Item1.Data.Name); // csvFile.NewRow(); // csvFile.AddToRow(1); // foreach (var data in Mission.Data) // { // var tuples = parametersLookup[data.Name]; // double[] times = tuples.Select(t => t.Item2).Aggregate(new List<double>(), (t, l) => // { // t.AddRange(l); // return t; // }, t => t.ToArray()); // var values = tuples.Select(t => // { // (MissionParameter parameter, double[] timeArray) = t; // var vals = new double[0]; // if (parameter is ConstantMissionParameter constantParameter) // { // if (constantParameter.Data.Value is double d) // { // vals = MathNet.Numerics.Generate.Repeat(timeArray.Length, d); // } // else if (constantParameter.Data.Value is int i) // { // vals = MathNet.Numerics.Generate.Repeat(timeArray.Length, (double)i); // } // } // else if (parameter is VariableMissionParameter variableParameter) // { // vals = variableParameter.Values.Cast<double>().ToArray(); // } // return vals; // }).Aggregate(new List<double>(), (t, l) => // { // t.AddRange(l); // return t; // }, t => t.ToArray()); // csvFile.AddToRow(DoubleVectorData.ValueToString(times)); // csvFile.AddToRow(DoubleVectorData.ValueToString(values)); // } // csvFile.WriteRow(); //} using (var csvFile = new CSVFiler(CsvPath)) { csvFile.NewRow(); csvFile.AddToRow(1); foreach (var segment in Mission.Segments) { double[] times = segment.Times; csvFile.AddToRow(DoubleVectorData.ValueToString(times)); foreach (var parameter in segment.Parameters) { var values = new double[0]; if (parameter is ConstantMissionParameter constantParameter) { if (constantParameter.Data.Value is double d) { values = MathNet.Numerics.Generate.Repeat(times.Length, d); } else if (constantParameter.Data.Value is int i) { values = MathNet.Numerics.Generate.Repeat(times.Length, (double)i); } } else if (parameter is VariableMissionParameter variableParameter) { values = variableParameter.Values.Cast <double>().ToArray(); } csvFile.AddToRow(DoubleVectorData.ValueToString(values)); } } csvFile.WriteRow(); } }