FAQ-372 LabTalkスクリプトから分析結果テーブルの値にアクセスするには?Access-Result-Table-by-Script
最終更新日:2015/02/04
線形および非線形フィットなどの分析操作は、フィット統計値やパラメータ値のようなフィット結果を持つ埋め込みのテーブルを含むレポートシートを作成します。これらの結果にアクセスする目的で提供されているXファンクションを使ってスクリプトからアクセスできます。
レポートシートの一般的な利用に対し、Xファンクション getresults を使うことができます。
例えば,
// アクティブな結果シートにツリー変数を作成します
getresults myLRFitResults;
// プロパティの一覧を出力します
myLRFitResults.=;
// 線形フィットの場合、傾きを出力します
myLRFitResults.Parameters.Slope.Value=;
非線形曲線フィット機構で操作している場合、非線形フィットの結果にアクセスするために設計されたXファンクションがあります。それはgetnlr Xファンクションです。このXファンクションを使って、ツリー構造をより単純化し、オプションによって、インデックスではなくパラメータ名で結果にアクセスするようにカスタマイズできます。
例えば、__REPORT$ システム変数を使い、レポートシートを見つけ、FDFファイルの「フィット後」のスクリプトセクションに次のスクリプトを配置し、フィット後のいくつかのフィット値を出力します。
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);
}
Note:
- 作成したツリーの内容は、LabTalk変数と関数ダイアログdialog (
ed コマンドで開く)で表示できます。
- __REPORT$ は、別の分析を実行するとその値が変化するので、列値の設定では役立ちません。
- データセットの数を取得するには、ツリーの nsets の値を使います。nfuncparams および nderivparams は、それぞれパラメータの数と派生パラメータの数です。
- 出力ツリーのパラメータの表記として、パラメータ名(オプション 0)、省略形(オプション1) または両方(オプション 2) を選択できます。オプション0では、パラメータの名前と誤差はP1, E1, P2, E2, などのように増えていきます。。オプション1では、誤差と名前はそれぞれ、y0_1, e_y0_1, n_y0_1, y0_2, e_y0_2, n_y0_2, などのように、e_ と n_ のプレフィックスになります。
次のスクリプトでは、Boltzmann関数による2つのデータセットのグローバルフィット結果、A1 と A2があるものとします。このときパラメータはP1 とP2で、getnlr Xファンクションを使って、両方の名前表記を持つレポートツリーを取得します。
getnlr myfit iw:=FitNL1! p:=2;
FirstAsymptoteA1 = myfit.p1; // 別の名前は A1_1
FirstAsymptoteA2 = myfit.p2; // 別の名前は A2_1
SecondAsymptoteA1 = myfit.A1_2; // 別の名前は p5
SecondAsymptoteA2 = myfit.A2_2; // 別の名前は p6
キーワード: フィット, nlfit, 非線形, 曲線, パラメータ, 結果, getnlr
|