} // ProcessCsvFile() /// <summary> /// takes a data table of indices and normalises column values to values in [0,1]. /// </summary> /// <param name="dt"></param> /// <returns></returns> public static DataTable NormaliseColumnsOfDataTable(DataTable dt) { string[] headers = DataTableTools.GetColumnNames(dt); string[] newHeaders = new string[headers.Length]; List <double[]> newColumns = new List <double[]>(); for (int i = 0; i < headers.Length; i++) { double[] values = DataTableTools.Column2ArrayOfDouble(dt, headers[i]); //get list of values if ((values == null) || (values.Length == 0)) { continue; } double min = 0; double max = 1; if (headers[i].Equals(Keys.AV_AMPLITUDE)) { min = -50; max = -5; newColumns.Add(DataTools.NormaliseInZeroOne(values, min, max)); newHeaders[i] = headers[i] + " (-50..-5dB)"; } else //default is to normalise in [0,1] { newColumns.Add(DataTools.normalise(values)); //normalise all values in [0,1] newHeaders[i] = headers[i]; } } //for loop //convert type int to type double due to normalisation Type[] types = new Type[newHeaders.Length]; for (int i = 0; i < newHeaders.Length; i++) { types[i] = typeof(double); } var processedtable = DataTableTools.CreateTable(newHeaders, types, newColumns); return(processedtable); }