在非線性平台中,我可以提供自己的方程,然後詢問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對話並在第一個實例中鎖定第二個參數(b1)並將默認值更改為0.55並使用默認值1鎖定實例2中的b2。
使用Xpath我可以選擇NumberColEditBoxes並更改它們的值,但我無法以這種方式操縱鎖定檢查標記。
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);
這是您檢查和設置第二個複選框的方法。
從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獲取鎖定參數的示例
幫助==>腳本索引==> NonLinear ==>鎖定參數
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;