Xファンクション概要

Xファンクションは、LabTalkスクリプトからOriginの機能のほとんどすべてを同じ方法で利用することができます。 Xファンクションを使う最も良い方法は、Xファンクションを使う多くのサンプルを利用することです。スクリプトからアクセスできるXファンクションの一覧はLabTalkでサポートしているXファンクションのセクションにあります。

シンタックス

Xファンクションの固有のシンタックスからスクリプトサンプルでXファンクションを認識できます。

xFunctionName input:=<range> argument:=<name/value> output:=<range> -switch;

一般的な注意:

  • Xファンクションは、複数の入力、出力、引数を指定することができます。
  • Xファンクションは、その利用可能な引数のリストのサブセットで呼び出すことができます。
  • 値が指定されていない場合、デフォルト値が使われます。
  • 各Xファンクションは、異なる入出力の変数を持ちます。

Xファンクションの引数の順番についての注意:

  • Xファンクションはデフォルトで、その入力と出力の引数が特定の順序で入力されます。
  • 引数の順序は、個々のXファンクションのヘルプファイルにあり、スクリプトウィンドウで、XFunctionName -hのように表示します。
  • Originが指定している順番で引数を入力すれば、引数名を入力する必要はありません。
  • 引数名を明示的に入力すると、引数はどの順番でも指定することができます。
  • 省略された引数が指定された順序で最初に来て、その後に任意の順序で明示的に入力された引数が続くのであれば、引数の処理を混在させることができます。
  • 引数名は、引数名の後ろにある文字をトリミングして短縮可能ですが、短縮名は固有である必要があります。

次のサンプルは、fitpoly Xファンクションを使って、これらについて説明しています。

サンプル

fitpoly Xファンクションは、次の特定のシンタックスを持ち、これはOriginが指定している引数の順番です。

fitpoly iy:=(inputX,inputY) polyorder:=n fixint:=(0=No/1=Yes) intercept:=value coef:=columnNumber oy:=(outputX,outputY) N:=numberOfPoints;

指定された順番で入力する場合、Xファンクションは次のように書きます。

//XYデータで多項式フィット (X列 1, Y列 2), 
// 多項式次数= 4
// 切片固定なし、初期値0
// 列3に係数出力
// 列4にX値、列5にY値を出力
// 出力XYポイント数 =100
fitpoly (1,2) 4 0 0 3 (4,5) 100;

これは、アクティブワークシートの列1と列2にあるXYデータの100ポイントで4次多項式のフィットを行い、列3に多項式の係数を配置し、列4と列5にフィット結果のXYデータを配置します。

これに対して、すべてのオプションを入力したコマンドは、長くなりますが、上記と同じ操作を実行します。

fitpoly iy:=(1,2) polyorder:=4 coef:=3 oy:=(4,5) N:=100;

入力と出力の引数名を入力するのと引き替えに、LabTalkはどの順番でも受け付けられ、期待する結果を返します。

fitpoly coef:=3 N:=100 polyorder:=4 oy:=(4,5) iy:=(1,2);

また、次のスクリプトのように一部の引数名を省略してから、任意の順序で他の名前付き引数を続けても、上記と同じ結果が得られます。

fitpoly (1,2) 4 oy:=(4,5) N:=100 coef:=3;

引数リストの中で固有の短縮名である場合、以下のように引数を短縮可能です。

fitpoly iy:=(1,2) poly:=4 co:=3 o:=(4,5) N:=100;

ここで、poly polyorderco coefooyの短縮です。

しかし、次のスクリプトの場合はエラーになります。

fitpoly i:=(1,2) poly:=4 co:=3 o:=(4,5) N:=100;

これは、i から始まる2つの引数(iyintercept) があるのが原因です。ここで、Originはiがどの引数を参照しているかを判断できず、iが一意ではないことを示しています。

明示的に指定すれば、入力と出力はそれぞれ別の行でどの順番にでもすることができます。

fitpoly 
coef:=3 
N:=100 
polyorder:=4 
oy:=(4,5) 
iy:=(1,2);

Xファンクションの呼び出しを終了するセミコロンは、Xファンクションと結びついた最後のパラメータの後にだけ配置します。

オプションスイッチ

-h-d のようなオプションスイッチは、スクリプトからXファンクションを実行する代替のモードにアクセスします。 それらは、他の引数と一緒または引数無しで使うことができます。 オプションスイッチ(とその値)は引数リストのどこにでも配置することができます。 このテーブルは、主要なXファンクションのオプションスイッチをまとめたものです。

名前 関数
-h スクリプトウィンドウにヘルプファイルの内容を出力
-d ダイアログボックスを表示してパラメータを入力
-s サイレントモードで実行。結果は結果ログに送られない
-t <themeName> 事前にセットしたテーマを使用
-r <value> 入力が変更したら、自動再計算するよう出力をセット

オプションスイッチについての詳細は、Xファンクションの実行オプションをご覧下さい。

ダイアログ設定からスクリプトを生成

Xファンクションを呼ぶ最も簡単な方法は、 -d オプションを使い、ユーザインターフェース(GUI)を使ってその設定を行うことです。

GUIで、ダイアログ設定が行われると、ダイアログテーマのフライアウトメニューのスクリプトを生成 を選んで、設定に対応するLabTalkスクリプトを生成することができます。そして、現在のGUI設定に合致するスクリプトがスクリプトウィンドウに出力され、それをバッチ用のOGSファイル、または他のプロジェクトにコピー&ペーストすることができます。

Note: ダイアログテーマボックスと、対応するスクリプトの生成フライアウトメニューは、-d オプションで開く全てのXファンクションダイアログで利用可能ではありません。例えば、rnormalize -dでは利用できますが、fitpoly -dでは利用できません。