非線形プラットフォームでは、私は自分自身の方程式を供給してからJMPに依頼して係数を解くことができます。ビジュアルインターフェイスで、これらのパラメータのいくつかをロックし、それらにプリセット値を与えることができます。スクリプトでこれを行うにはどうすればよいですか。
dt = Open("$SAMPLE_DATA\Big Class.jmp");
dt << New Column( "PredictorFormula",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Parameter(
{b0 = 0.5, b1 = 0.6, b2 = 0.7},
b0 + b1 * :height + b2 * :height ^ 2
)
),
);
nln = Nonlinear( Y( :weight ), X( :PredictorFormula ), By( :sex ), Newton );では、最初のインスタンスでnlnと会話して2番目のパラメーター(b1)をロックし、デフォルト値を0.55に変更し、インスタンス2のb2をデフォルト値1でロックします。
Xpathを使ってNumberColEditBoxを選択してその値を変更することはできますが、そのようにロックチェックマークを操作することはできません。
ValuesBoxes = nln << xpath("//NumberColEditBox/NumberColEditBoxHeader[text()='Current Value']/..");
templist = (ValuesBoxes[1] << get())[1];
templist[2] = 0.55;
ValuesBoxes[1] << set(templist);
templist = (ValuesBoxes[2] << get())[1];
templist[3] = 1;
ValuesBoxes[2] << set(templist);チェックボックスの列を選択して最初のチェックボックスを照会または設定できますが、それ以上のことはできません。
CheckBoxes = nln << xpath("//CheckBoxBox");
CheckBoxes[1] << get();
CheckBoxes[1] << set(1); //Only does a toggle of the first checkbox, cannot do any other checboxそして、質問を投稿した直後にもう一度やり直すことにしました。そしてそれを解決する方法を考え出しました。
CheckBoxes[1] << get(2);
CheckBoxes[1] << set(2,1);
これが、2番目のチェックボックスをチェックして設定する方法です。
Scripting Indexから、NonlinearプラットフォームはLock Parameterメッセージを受け入れます。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/CES Production Function.jmp" );
obj = Nonlinear( Y( :Name( "log($ value)" ) ), X( :Model ) );
obj << Set Parameter( B0 = 0.2 );
obj << Lock Parameter( B0 );
obj << Finish;
これは、パラメータのロックに関するScripting Indexから直接引用した例です。
ヘルプ==>スクリプトインデックス==>非線形==>ロックパラメータ
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/CES Production Function.jmp"
);
obj = Nonlinear(
Y( :Name( "log($ value)" ) ),
X( :Model )
);
obj << Set Parameter( B0 = 0.2 );
obj << Lock Parameter( B0 );
obj << Finish;