Originに新しいOrigin C関数を追加する

サマリー

Origin Cで書かれた関数は、スクリプトウィンドウなどのOriginインターフェースからアクセスできます。関数は、void型 (前のチュートリアル), double型, string型, doubleまたはstringのvector型のいずれかを返します。Originから関数に渡される変数は、double型、string型、これらのデータ型のvector型です。この条件に合っていない関数はOriginインターフェースから呼び出すことはできませんが、他のOrigin C関数から呼び出すことができます。int型の変数を受付けたり、返すことができるOrigin C関数をOriginインターフェースから呼び出すことができますが、インターフェースはdouble型のみをサポートしているため、これはデータの切り詰めが行われます。

このチュートリアルでは、算術関数で計算した結果を返す関数を作成する方法を紹介します。最初に、Originにdouble型の値を返す関数を作成し、そして、double型のvector変数を返す関数を作成します。

必要なOriginのバージョン:Origin 8.0 SR0

学習する項目

新しい関数を追加して、スクリプトウィンドウでこの関数を実行する方法

ステップ

  1. コードビルダで新しいOriginCファイルを作成します。
  2. 次のコードを入力します。
double myfunc1(double x, double a)
{
         return sin( a * x );        
}
  1. ビルドボタンImage:Button_Build.png をクリックして関数をコンパイルします。

この関数はOriginインターフェイス、例えばスクリプトウィンドウ等から呼び出すことができます。

  1. スクリプトウィンドウを開き、以下の行を入力して各行を入力した後にENTERを押します。
y = myfunc1(2, 3)
y =

特定の値ではなく、ワークシートのセルを指定する事もできます。

  1. ワークシートをアクティブにして列A1行目にある数字を入力します。そして、次の内容をスクリプトウィンドウに入力してENTERを押します。
col(B)[1] = myfunc1(col(A)[1], 3)

myfunc1のような関数は、Double型の変数を受け取って返してきます。また、ベクター演算も可能です。

  1. 列Aの1行目から10行目までに数字を入力し、次の行をスクリプトウィンドウに入力します。
col(B) = myfunc1(col(A), 3)

上記例ではOriginはmyfunc1を列Aの各行に対して呼び出しています。上記のようにベクター演算を行うには、Vectorデータを受け取って返す関数を作成した方がより効率的です。

  1. コードビルダに戻り、同じファイル内に次の関数を入力し、ビルドボタンImage:Button_Build.pngをおして関数をコンパイルします。  
vector<double> myfunc2(vector<double> vecIn, double a)
{  
       vector<double> vecOut;
       vecOut = sin( a * vecIn );
       return vecOut;
}
  1. Originのインターフェイスに戻り、列Aに別の数字を入力してから、次の内容をスクリプトウィンドウに入力します。
col(B) = myfunc2(col(A), 3)

myfunc2関数は1度だけ呼び出されて全列の計算を算出しました。

このような関数は、例えば「列値の設定」ダイアログなどで利用できます。「列値の設定」の自動更新機能はダイアログ内で対応するチェックボックスにチェックを付けると適用されます。OriginC関数がコンパイルされると、Originから呼び出すことができ、元データの列を変更すると結果の列の値も変更されます。