関数ステートメントFunction-stmts
Originでの関数は2種類あります。
ひとつはLabTalk関数で、もう一つがXファンクションです。
LabTalk関数
シンタックスは、
functionname(arguement1, arguement2, ...)です。
ほとんどのLabTalk関数には戻り値の型が含まれており、代入ステートメントの右側 (RHS) で使用したり、他のコマンドや関数の引数として使用したりできます。
Col(B)=sin(Col(A)); //sin関数を呼び出し
type $( total(Col(B)) ); //列Bの合計を出力
一部のLabTalk関数は、値を組み込みオブジェクトに自動的に割り当てたり、戻り値の型を指定せずにステートメント内で独立して直接呼び出すことができます。
sum関数は、多くの基本的な統計結果を含むsumオブジェクトを作成します。
sum(%C); //選択したデータセットまたはアクティブプロットで関数を呼び出し
sum.N=; //データの合計数を返す
sum.total=; //合計を返す
sum.mean =; //平均を返す
sum.= // sumオブジェクトの全プロパティを確認
Xファンクション
関数と呼ばれていますが、コマンドと同様の構文で呼び出されます。角括弧 [ ] はオプションを示します。
xfname [-options] arg1:=value arg2:=value ... argN:=value;
次のスクリプトは、新しいブックを作成し、データを入力して線形近似を実行します。このスクリプトでは、Xファンクションnewbook、fitlrをLabTalk関数data()、uniform()、およびsort()とともに使用します。
newbook name:="Test"; //"Test"という名前の新しいブックを作成
col(A)=data(0.1, 10, .1); //列に0.1, 0.2, ...を入力10
col(B)=sort(uniform(100)); //ソートされた0から1 までの一様分布データをB列に入力
fitlr iy:=(col(a), col(b)); //作成されたツリーオブジェクトfitlrでフィット
type "intercept is $(fitlr.a, .2)"; //小数点以下2桁の切片値を出力
type "slope is $(fitlr.b, .2)"; //小数点以下2桁の傾き値を出力
|