FAQ-372 LabTalkスクリプトから分析結果テーブルの値にアクセスするには?

最終更新日: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