private static extern bool DLL_TBApiScaleCoordinates(ref long handle, ref data_block data, ref int x, ref int y);
private void button1_Click(object sender, EventArgs e) { List <string> data_string_raw = new List <string>(textBox1.Lines); List <data_block> datas = new List <data_block>(); for (int i = data_string_raw.Count - 1; i >= 0; i--) { string str = data_string_raw[i]; str = str.Replace(" ", ""); str = str.Replace("\r", ""); str = str.Replace("\n", ""); str = str.Replace("\t", ""); if (str == "") { data_string_raw.RemoveAt(i); } } for (int i = data_string_raw.Count - 1; i >= 0; i--) { string str = data_string_raw[i]; str = MergeSpace(str); string[] split_space = str.Split(' '); data_block db = new data_block(); db.learning_rate = double.Parse(split_space[0]); db.P = double.Parse(split_space[1]); db.I = double.Parse(split_space[2]); db.D = double.Parse(split_space[3]); str = get_list(str, db.train_lossf); str = get_list(str, db.val_lossf); str = get_list(str, db.train_accf); str = get_list(str, db.val_accf); datas.Add(db); } if (File.Exists("excel.csv")) { int k = 0; while (File.Exists("excel.csv." + k + ".bak")) { k++; } File.Move("excel.csv", "excel.csv." + k + ".bak"); } StreamWriter sw = new StreamWriter("./excel.csv"); for (int i = 0; i < datas.Count; i++) { sw.Write(datas[i].learning_rate + "," + datas[i].P + "," + datas[i].I + "," + datas[i].D + ", ,"); for (int j = 0; j < datas[i].train_lossf.Count; j++) { sw.Write(datas[i].train_lossf[j] + ","); } sw.Write(" ,"); for (int j = 0; j < datas[i].val_lossf.Count; j++) { sw.Write(datas[i].val_lossf[j] + ","); } sw.Write(" ,"); for (int j = 0; j < datas[i].val_lossf.Count; j++) { sw.Write(datas[i].val_lossf[j] + ","); } sw.Write(" ,"); for (int j = 0; j < datas[i].val_accf.Count; j++) { sw.Write(datas[i].val_accf[j] + ","); } sw.Write(" \r\n"); } sw.Close(); if (checkBox1.Checked) { for (int i = 0; i < datas.Count; i++) { Table tb = new Table(); tb.label1.Text = "learning_rate = " + datas[i].learning_rate.ToString("G10"); tb.label2.Text = "P = " + datas[i].P.ToString("G10"); tb.label3.Text = "I = " + datas[i].I.ToString("G10"); tb.label4.Text = "D = " + datas[i].D.ToString("G10"); tb.textBox1.Text = datas[i].learning_rate.ToString("G10") + ", " + datas[i].P.ToString("G10") + ", " + datas[i].I.ToString("G10") + ", " + datas[i].D.ToString("G10"); tb.chart1.Titles[0].Text = "train_lossf"; for (int j = 0; j < datas[i].train_lossf.Count; j++) { tb.chart1.Series[0].Points.AddXY(j, datas[i].train_lossf[j]); } tb.chart1.Series[0].Points[0].Label = datas[i].train_lossf[0].ToString("G6"); tb.chart1.Series[0].Points[datas[i].train_lossf.Count - 1].Label = datas[i].train_lossf[datas[i].train_lossf.Count - 1].ToString("G6"); tb.chart2.Titles[0].Text = "val_lossf"; for (int j = 0; j < datas[i].val_lossf.Count; j++) { tb.chart2.Series[0].Points.AddXY(j, datas[i].val_lossf[j]); } tb.chart2.Series[0].Points[0].Label = datas[i].val_lossf[0].ToString("G6"); tb.chart2.Series[0].Points[datas[i].val_lossf.Count - 1].Label = datas[i].val_lossf[datas[i].val_lossf.Count - 1].ToString("G6"); tb.chart3.Titles[0].Text = "train_accf"; for (int j = 0; j < datas[i].train_accf.Count; j++) { tb.chart3.Series[0].Points.AddXY(j, datas[i].train_accf[j]); } tb.chart3.Series[0].Points[0].Label = datas[i].train_accf[0].ToString("G6"); tb.chart3.Series[0].Points[datas[i].train_accf.Count - 1].Label = datas[i].train_accf[datas[i].train_accf.Count - 1].ToString("G6"); tb.chart4.Titles[0].Text = "val_accf"; for (int j = 0; j < datas[i].val_accf.Count; j++) { tb.chart4.Series[0].Points.AddXY(j, datas[i].val_accf[j]); } tb.chart4.Series[0].Points[0].Label = datas[i].val_accf[0].ToString("G6"); tb.chart4.Series[0].Points[datas[i].val_accf.Count - 1].Label = datas[i].val_accf[datas[i].val_accf.Count - 1].ToString("G6"); //tb.chart1.Series.Add() tb.Show(); } } else { MessageBox.Show("Done!"); } return; }