Xファンクションの実行オプション

目次

Xファンクションのオプションスイッチ

次のオプションスイッチは、スクリプトからXファンクションにアクセスするときに利用できます。

スイッチ 完全な名前 関数
-cf -- 入力範囲の列フォーマットをコピーし、それを出力範囲に適用
-d -dialog Xファンクションパラメータを設定およびスクリプトを生成するためにダイアログを開く
-db -- ダイアログの種類; 現在のワークブック内でパネルとしてXファンクションダイアログを開く
-dc IsCancel -- ダイアログの種類;Xファンクションパラメータを選択するダイアログを開く。OKボタンをクリックする場合、IsCancel を0にセットし、キャンセルボタンをクリックする場合1にセットキャンセルボタンをクリックした場合、#User Abort!のようなエラーメッセージやXファンクション実行後のスクリプトはスクリプトウィンドウに表示されません。
-e -- XファンクションビルダーにXファンクションを開く。edit -x コマンドと同じように動作します。
-h -help スクリプトウィンドウにヘルプファイルの内容を出力
-he -- スクリプトウィンドウにスクリプトサンプルの内容を出力
-hn -- Xファンクションをロードしコンパイルだけする。すでにロードとコンパイル済みの場合、何もしない。
-hs -- -hの変形; スクリプト使用例のみを出力
-ht -- Hの変形; ツリーノードの情報があればそれのみ出力
-hv -- -hの変形; 変数リストのみを出力
-hx -- -hの変形; 関連するXファンクション情報のみ出力
-r <option> -recalculate 再計算モードを指定: 0 = なし; 1 = 自動; 2 = 手動:サンプル.出力が<入力>と同じ場合、再計算はサポートされません。
-s -silent サイレントモードで実行。結果は結果ログに送られない
-sb -- -sの変形; エラーメッセージと結果ログの出力をしない。
-se -- -sの変形; エラーメッセージを出さない。結果ログの出力は行う。
-sl -silent -sと同じ
-sr

(Origin 2016 SR1)

-- -sの変形; スクリプトウィンドウに結果メッセージを出さない。
-ss -- -sの変形; スクリプトウィンドウに情報メッセージを出さない。
-sw

(Origin 2016 SR1)

-- -sの変形; スクリプトウィンドウに注意メッセージを出さない。
-t <Name> -theme 事前に設定されたテーマを使用する。
-u

(Origin 2024b)

-undo スクリプトから実行するときに、操作を元に戻すことができるかどうかを指定します。


既存の完全な名前を持つオプションでは、省略形または完全な名前のスイッチのどちらかをスクリプトで使います。 例えば、Xファンクション smoothでは

smooth -h

は以下と同じです。

smooth -help

サンプル

Xファンクションダイアログを開く

-d スイッチを使用してXファンクションダイアログを開き、ユーザが対話的に入力とパラメータ設定が可能なようにします。

次のスクリプトは、列1と列2にデータを入力します。-dスイッチを使用して smoothXファンクションダイアログを開き、ユーザが結果をプレビューしたり、設定を調整したりできます。OKをクリックすると、スクリプトが続き、列2と列3を折れ線グラフとしてプロットします。

col(1)=data(1,100); //列1に行番号を入力
col(2)=normal(100); //列2に正規化データを入力
//入力、メソッド、ロードされたポイント数を含むダイアログを開く
//ダイアログの設定をしてOKをクリック
smooth (1,2) method:=2 npts:=25 -d; 
//シートのX列 (列1) に対してY列 (列2および3)を折れ線グラフとしてプロット
plotxy (?,2:3) p:=200;

テーマを使う

-tスイッチを使って保存されているダイアログテーマでXファンクションを実行します。ダイアログテーマは基本的に、Xファンクションダイアログのパラメータ、出力の設定です。通常、テーマファイルでは入力は除外されます。

次の手順では、ダイアログテーマファイルを保存し、-tスイッチを使用して保存したテーマを使用する方法を示します。

  1. 上記のスクリプトの後に作成された列2を選択します。以下のスクリプトを実行してスムージングダイアログを開きます。または、解析:信号処理:スムージング:ダイアログを開くメニューを選択して開きます。
    smooth -d;
  2. 方式隣接平均法にし、ウィンドウのポイント数5にします。
  3. ダイアログ上部のダイアログテーマの右側にある> ボタンをクリックし名前を付けて保存...を選択します。ダイアログの設定をFivePtAdjAveという名前で保存します。
  4. ダイアログをキャンセルします。
  5. 前のスクリプトで使ったデータがあるワークブックをアクティブにします。
  6. -tスイッチを指定してXファンクションを実行し、FivePtAdjAve という名前のテーマを使用して列1と2のXYデータでスムージングを実行します。これは、方式隣接平均法ウィンドウのポイント数5として意味します。
    smooth (1,2) -t FivePtAdjAve;

Note: Originが自動的にテーマをUser Files\Themes\AnalysisAndReportTable\に保存するため、テーマファイルのパスを指定する必要はありません。テーマファイルは他の人と共有できます。Originのワークスペースにテーマファイルをドラッグアンドドロップするだけでインストールして使用できます。1つのプロジェクト (*.OPJ) に保存されたテーマは、他のプロジェクトでも使用できます。Origin 2024から、Originはまず現在のプロジェクトフォルダからテーマを探します。見つからない場合は、ユーザーファイルフォルダから。

再計算モードをセット

-rスイッチを使って出力の再計算モードを設定できます。

複数のスイッチを一緒に使用できます。下記の2つのスイッチのうち -t FivePtAdjAve は、FivePtAdjAveテーマでスムージングを実行し、-r 1 は再計算モードを自動に設定します。

smooth (1,2) -t FivePtAdjAve -r 1;

以下のスクリプトは、Xファンクションfreqcounts-r 1とともに実行し、入力列が変更された時に自動で再計算します。

newbook;
col(1)=uniform(100)*50; //0 から 50 までの一様に分散されたランダム データを生成
//増分5で周波数カウントを実行し、再計算モードを自動に設定
freqcounts irng:=col(1) min:=0 max:=50 stepby:=increment inc:=5
   end:=0 count:=1 center:=1 cumulcount:=0 rd:=col(4) -r 1;

Xファンクションビルダを開く

-hスイッチによって表示されるヘルプファイルは膨大で読みにくい場合がありますが、他の-he、-hvでは内容が少なすぎる場合もあります。

代わりに、-eスイッチを使用して Xファンクションビルダで Xファンクションを開くことで、テーブルビューですべてのパラメータについて完全な情報 (入力/出力、データ型、デフォルト値など) とともに確認できるようになります。 これは、上級ユーザが組み込みXファンクションのコードを学習するためのダイアログでもあります。ダイアログのXファンクションをコードビルダで編集ボタンをクリックするとXファンクションコードがコード ビルダーに表示されます。

smooth -e;

入力から出力にフォーマットをコピー

-cfスイッチを使って入力データと一致するように出力データをフォーマットします。

デフォルトでは、すべての分析結果はデー​​タ型doubleとして出力されます。次のスクリプトでは、出力データ形式を入力データ形式である short(2) にします。

// *.wavファイルをインポート; インポートされた *.wavファイルのデータ形式はshort(2)
fname$ = system.path.program$ + "Samples\Signal Processing\sample.wav";
newbook s:=0; 
newsheet col:=1; 
impWav options.SparkLines:=0;

//現在のブックの最初のシートの列1に対してカットオフ周波数 = 2000 でローパスfft_filterを実行
fft_filters -cf [%H]1!col(1) cutoff:=2000  
oy:=(<input>,<new name:="Lowpass Sound Frequency">);

操作を元に戻す

-uスイッチを使用すると、スクリプトから実行するときにXファンクション操作を元に戻すことができます。

ダイアログからXファンクションを実行した場合、デフォルトで操作を元に戻すことができます。しかし、スクリプトから実行する場合は、-uスイッチを使用してundoをサポートする必要があります。次のスクリプトは、アクティブなワークシートを入れ替えて結果を新しいブックに出力し、操作を元に戻します。

wtranspose -u ow:=<new>;
undo;