public void DataBind(MatrixEquation mat) { Entity = (mat); //具有固定参数,则生成打开 if (this.HasOrEnableFixedParam) { var fixedStorage = this.GetFixedParamStorage(); if (fixedStorage != null) { ParamFixedMatrixEquationBuilder equationBuilder = new ParamFixedMatrixEquationBuilder(fixedStorage); var newEq = equationBuilder.Build(Entity); MatrixEquationForm form = new MatrixEquationForm(); form.DataBind(newEq); form.Show(); } } StringBuilder sb = new StringBuilder(); if (Entity.MaxSize > MaxOrderToShow) { sb.Append("超出最大显示阶数:" + Entity.MaxSize); } else { //左右方程 this.richTextBoxControl_left.Text = Entity.LeftSide.ToReadableText(); this.richTextBoxControl_right.Text = Entity.RightSide.ToReadableText(); if (Entity.HasWeightOfRightSide) { richTextBoxControl_weightOfU.Text = Entity.QofU.ToReadableText(); } sb.AppendLine("方程文本"); sb.AppendLine(Entity.ToReadableText()); } //法方程与观测残差 var normal = Entity.NormalEquation; sb.AppendLine("法方程文本"); sb.AppendLine(normal.ToReadableText()); sb.AppendLine("参数计算结果"); var est = normal.GetEstimated(); sb.AppendLine(est.ToReadableText()); var table = est.GetObjectTable(); this.objectTableControl_result.DataBind(table); //写结果 var paramPath = Path.Combine(OutputDirectory, "EstimatedParamOf" + Entity.Name + Setting.ParamFileExtension); ObjectTableWriter.Write(table, paramPath); sb.AppendLine("观测残差"); sb.AppendLine(normal.GetResidual().ToReadableText()); this.richTextBoxControl_result.Text = sb.ToString(); }
private void DataBind(MatrixEquation mat) { Entity = mat; //具有固定参数,则生成打开 if (this.HasOrEnableFixedParam) { var fixedStorage = this.GetFixedParamStorage(); if (fixedStorage != null) { ParamFixedMatrixEquationBuilder equationBuilder = new ParamFixedMatrixEquationBuilder(fixedStorage); var newEq = equationBuilder.Build(Entity); MatrixEquationForm form = new MatrixEquationForm(); form.DataBind(newEq); form.Show(); } } this.richTextBoxControl_left.Text = Entity.LeftSide.ToReadableText(); StringBuilder sb = new StringBuilder(); sb.AppendLine(Entity.RightSide.ToReadableText()); if (Entity.HasWeightOfRightSide && Entity.QofU.RowCount < 100) { sb.AppendLine("右边权逆阵"); sb.AppendLine(Entity.QofU.ToReadableText()); } this.richTextBoxControl_right.Text = sb.ToString(); //输出 var path = Path.Combine(OutputDirectory, mat.Name + Setting.TextMatrixEquationFileExtension); WriteToTextFile(path); //法方程与观测残差 sb = new StringBuilder(); var normal = Entity.NormalEquation; sb.AppendLine("法方程文本"); sb.AppendLine(normal.ToReadableText()); sb.AppendLine("参数计算结果"); var est = normal.GetEstimated(); sb.AppendLine(est.ToReadableText()); var table = est.GetObjectTable(); this.objectTableControl1.DataBind(table); //写结果 var paramPath = Path.Combine(OutputDirectory, "EstimatedParamOf" + Entity.Name + Setting.ParamFileExtension); ObjectTableWriter.Write(table, paramPath); sb.AppendLine("观测残差"); sb.AppendLine(normal.GetResidual().ToReadableText()); richTextBoxControl_normal.Text = sb.ToString(); }