Wks-SetColVal-Expression
値の設定ダイアログで使われる計算式は、LabTalkのロジックに従います。計算式には、算術演算、範囲(range)変数、組込のLabTalk関数、ユーザ定義関数 などを含めることができます。数式を定義する場所が2ケ所あります。
サンプルを利用できます。ダイアログメニューの計算式:サンプルのロードを選択して取得できます。
Origin 2017 SR0からは、デフォルトでスプレッドシートセル表記 (SCN)が有効になっています。SCNが有効の時、シンプルSCNや2017より前のバージョンをお使いの場合は、列値の設定ボックスかF(x)=列ラベル行のいずれかで、新しい表記、または、旧表記の利用が可能です。ただし、これは実行前の処理スクリプトでcol()やwcol()関数を使う場合、実行前の処理スクリプトにスクリプトを入力する場合や、ブラケット「{}」 some limitations applyを使う場合です。
col(ShortName"LongName")
列の計算式に1行の数式を入力して、実行前の処理スクリプトは空白にしておくことができます。列の計算式編集ボックス内の式は組み込み関数とユーザ定義関数を含めることができます。以下のサンプルで、これらの関数の使用方法をご紹介します。
サンプル 1
実行前の処理スクリプト編集ボックスに複数行のLabTalkスクリプトを入力し、列の計算式は空白にしておくことができます。組み込み関数とユーザ定義関数に加え、任意のLabTalkスクリプトを入力できます。ですので、範囲(range)変数、 文字列変数、loop、LabTalkからアクセス可能なXファンクションを使用可能です。
以下のサンプルは、「サンプル1」と同じ結果を取得できます。
サンプル 2
次のサンプルでは、データの正規化を行う複数行のスクリプトを含むサンプルの式をロードします。
サンプル 3
Note: 実行前の処理スクリプトパネルの各LabTalkスクリプト行の末尾にセミコロン(;)を付ける必要があります。
サンプル 4
range r1 = col(DW); // 追加列を範囲変数に設定 r1 = wcol(2); // 範囲の初期値をセット int nc = wks.ncols; // 列の総数を取得 // すべてのy列をループしてそれらを合計 for(page.v1=3; page.v1<= nc-1 ; page.v1+=1) { range rY = wcol(page.v1); r1 += rY; } r1 = r1/(nc-2); //y列の平均を計算
列の計算式と実行前の処理スクリプトの両方にスクリプトを入力する必要が時々あります。例えば、実行前の処理スクリプトで範囲変数を定義し、それを列の計算式で使用するような場合です。
サンプル 5
サンプル 6
積分関数とユーザ定義関数を使用して、与えられたT値における積分を計算する方法を示すサンプルです。
data(1,10,0.5)
実行前の処理スクリプトは以下の通りです。
// 積分を定義 function double Myintg(double x, double T) { //定数を定義 Double h = 1.23*10^(-4); Double k = 8.61*10^(-5); return 1/(exp(h*x/(k*T)) - 1); }