c#数据拟合小程序,对.txt里的数据进行拟合,然后输出.txt文件到指定文件夹 MathNet.Numerics Fit.Polynomial(D,temp, 15)

数据平滑,数据拟合
MathNet.Numerics的使用
Fit.Polynomial(D,temp, 15);函数的使用
c# winform打开文件夹,获取文件名称字符串
对文本文档读取里面的数据,写文件

选择的文本文档数据一行一个数据,数据量就是文本文档的列数

c#数据拟合小程序,对.txt里的数据进行拟合,然后输出.txt文件到指定文件夹 MathNet.Numerics Fit.Polynomial(D,temp, 15)_第1张图片

c#数据拟合小程序,对.txt里的数据进行拟合,然后输出.txt文件到指定文件夹 MathNet.Numerics Fit.Polynomial(D,temp, 15)_第2张图片
c#数据拟合小程序,对.txt里的数据进行拟合,然后输出.txt文件到指定文件夹 MathNet.Numerics Fit.Polynomial(D,temp, 15)_第3张图片

using MathNet.Numerics;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DataProcess
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string file = "";
        private void btn_SelectFiile_Click(object sender, EventArgs e)
        {
          
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Multiselect = true;      //该值确定是否可以选择多个文件
            dialog.Title = "请选择文件";     //弹窗的标题
            dialog.InitialDirectory = "D:\\";       //默认打开的文件夹的位置
            //dialog.Filter = "*.txt|所有文件(*.*)|*.*";
            dialog.Filter = "所有文件(*.*) | *.*";
            // dialog.Filter = "MicroSoft Excel文件(*.xlsx)|*.xlsx|所有文件(*.*)|*.*";       //筛选文件
            dialog.ShowHelp = true;     //是否显示“帮助”按钮

            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                file = dialog.FileName;
            }
            this.textBox1.Text = file;
        }

        private void btn_Process_Click(object sender, EventArgs e)
        {
            List<double> li = new List<double>();
            foreach (string str in System.IO.File.ReadAllLines(file, Encoding.Default))
             {
                li.Add(double.Parse(str));
               // Console.WriteLine(str); // str就是每一行数据
            }
            double[] temp = new double[li.Count];
            double[] D = new double[li.Count];
            for(int i = 0; i < li.Count; i++)
            {
                temp[i] = li[i];
                D[i] = i;
            }
            double[] parameters = Fit.Polynomial(D,temp, 15);
            List<double> result = new List<double>();
            string filename = "D:\\处理后的数据\\" + DateTime.Now.ToString("yyyyMMdd_HHmmss")  + ".txt";
            for (int i = 0; i < li.Count; i++)
            {
                result.Add(parameters[0] + parameters[1] * i + parameters[2] * i * i + parameters[3] * Math.Pow(i, 3) + parameters[4] * Math.Pow(i, 4) + parameters[5] * Math.Pow(i, 5) + parameters[6] * Math.Pow(i, 6) + parameters[7] * Math.Pow(i, 7) + parameters[8] * Math.Pow(i, 8) + parameters[9] * Math.Pow(i, 9) + parameters[10] * Math.Pow(i, 10) + parameters[11] * Math.Pow(i, 11) + parameters[12] * Math.Pow(i, 12) + parameters[13] * Math.Pow(i, 13) + parameters[14] * Math.Pow(i, 14) + parameters[15] * Math.Pow(i, 15));// + parameters[16] * Math.Pow(i, 16) + parameters[7] * Math.Pow(i, 17) + parameters[18] * Math.Pow(i, 18) + parameters[19] * Math.Pow(i, 19) + parameters[20] * Math.Pow(i, 20));

                if (!Directory.Exists("D:\\处理后的数据"))
                {
                    Directory.CreateDirectory("D:\\处理后的数据");
                }
                using (StreamWriter sw = new StreamWriter(filename, true))
                {

                    sw.Write(string.Format("{0} ", result[i]));
                    sw.Write("\r\n");

                }
            }
            MessageBox.Show("处理完成");

            #region
            //StreamReader rd = File.OpenText(file);
            //rd.readalllin
            //string s = rd.ReadLine();
            //string sss=rd.ReadToEnd();
            //string[] ss = sss.Split("\r\n");

            // int row = int.Parse(ss[0]); //行数
            // int col = int.Parse(ss[1]);  //每行数据的个数

            // double[] p1 = new double[row]; //数组

            // for (int i = 0; i < row; i++)  //读入数据并赋予数组
            //{
            //    string line = rd.ReadLine();
            //    //string[] data = line.Split(',');

            //       // p1[i] = double.Parse(ss[i]);

            //}
            #endregion
        }
    }
}

源代码
链接:https://pan.baidu.com/s/1En63p2hx4fcaTBcWvXMfJA?pwd=6w96
提取码:6w96
–来自百度网盘超级会员V6的分享

你可能感兴趣的:(数据拟合,读取文件文本文档,写文件,c#,开发语言)