4.13 FAQ-372 如何利用 LabTalk 脚本获取分析结果报告表的值?
Last Update: 7/6/2018
部分分析操作,如线性拟合和非线性拟合会生成相应的结果报表。这种结果报表将会包含各种嵌套的表格,而表格中将会存放拟合的统计值和参数值。您可以通过 Labtalk 脚本调用 X-Function 来访问这些数值。
对于访问一般的结果报表,您可以使用 getresults X-Function. 。 例如:
// create a tree variable of the results in the active result sheet getresults myLRFitResults; // Output a list of properties myLRFitResults.=; // if linear fit, can return the slope value by: myLRFitResults.Parameters.Slope.Value=;
如果您正在使用非线性曲线拟合工具,那么 LabTalk 有一个专门设计用于获取非线性拟合结果的 X-Function: getnlr X-Function。使用此 X-Function 获取的树的结构更简单,并且它还提供自定义选项允许用户通过除索引外的其他方式(如:参数名称)来访问结果。
例如,以下示例已使用已使用 __REPORT$ 系统变量查找结果报表,您可以将以下脚本放到 FDF 文件的 “After Fit” 那部分脚本中,这样就可以在拟合后输出部分拟合结果值。
getnlr myfit iw:=__REPORT$ p:=2; type %(myfit.func$) fit of %(myfit.Data1.y1$) results:; for( int ii=1; ii<=myfit.nfuncparams; ii++) { val = myfit.p$(ii); err = myfit.e$(ii); type Parameter $(ii) \x3D $(val) +/- $(err); }
注:
- 您可以从 LabTalk Variable and Functions 对话框(可通过
ed命令打开)查看创建的树的内容。 - __REPORT$ 在 Set Column Value 对话框中不适用,因为当您进行其他分析操作时它的值会随之而更改。
- 要获取 datasets 的数量,请使用 nsets。另外, nfuncparams 和 nderivparams 分别是指参数和派生参数的数量。
- 您可以选择使用 参数名称 (Option 0),缩写 (Option 1) 或 两者皆选 (Option 2) 作为输出树的参数指示。对于(Option 0),参数的名称和误差被枚举为P1,E1,P2,E2等。对于(Option 1),误差和名称则分别以e_和n_为前缀,例如,y0_1,e_y0_1,n_y0_1,y0_2, e_y0_2,n_y0_2等。
在以下示例中,假设对两个 datasets 利用 Boltzmann 函数进行共享参数全局拟合并已获取其拟合结果,其中A1和A2为参数P1和P2,然后我们可以使用 getnlr X-Function 来获取具有两个具有参数名称和缩写表示参数的报告树。
getnlr myfit iw:=FitNL1! p:=2; FirstAsymptoteA1 = myfit.p1; // Alternative name is A1_1 FirstAsymptoteA2 = myfit.p2; // Alternative name is A2_1 SecondAsymptoteA1 = myfit.A1_2; // Alternative name is p5 SecondAsymptoteA2 = myfit.A2_2; // Alternative name is p6
Keywords:after, fit, nlfit, nonlinear, curve, parameter, result, getnlr, 拟合, 非线性拟合, 曲线, 参数, 结果