パラメータのジャンプを検出し、それがどこにあるかを報告するJMPコミュニティの皆さん
ある製品の破損を表す点のX座標を検出する方法を見つけるのに苦労しています。
私はそれがスクリプトでそれをすることが可能であると確信しています、しかし私はJMPに関する経験がほとんどありません。
どんな助けでも大歓迎です!
宜しくお願いします、
/ JM

再:パラメータのジャンプを検出し、それがどこにあるかを報告するJMP列名は大文字と小文字を区別しません......ほとんどの場合、「v」または「V」として参照してもコードの実行に影響はありません。再:パラメータのジャンプを検出し、それがどこにあるかを報告するどうもありがとう!それは大いに役立ちます。JMPでスクリプトを作成する方法を示したので、コードを入力したところ、少し誤りがあることがわかりました。「それぞれの値を設定する(e-06)」を「それぞれの値を設定する(-6)」-log10 I-に置き換えて、問題なく機能します。また、私はあなたにJMP:dtsumm:v [dtsummRow]がエラーを生成しない理由を尋ねるかもしれません。列の名前が大文字で囲まれているので、dtsumm:V [dtsummRow]と入力します。繰り返しになりますが、あなたの助けのためにたくさんあります。/ JM再:パラメータのジャンプを検出し、それがどこにあるかを報告するこれはクロスオーバー電圧を決定するための計算を行うスクリプトです。
Names Default To Here( 1 );
dt = Current Data Table();
// Create a summary table to hold the new information
dtsumm = dt << Summary( Group( :batch, :Samples ID ), Freq( "None" ), Weight( "None" ) );
// Add a new column to hold the calculated value for the Voltage value when the data crosses
// crosses the target value
dtsumm << New Column( "V" );
// Create a new column that has the target value
dtsumm << New Column( "Log10 I", set each value( e-06 ) );
// Set the active data table back to the original data table
Current Data Table( dt );
// Loop across the active data table and calculate the voltage when the Y variable crosses the
// target value
For Each Row(
currow = Row();
curbatch = dt:batch[Row()];
cursampleID = :Samples ID[Row()];
// Get the row in the output table that matches the Batch value and Samples ID
// value for the row in the main table the looping is working on
dtsummRow = (dtsumm << get rows where( dtsumm:batch == curbatch & dtsumm:Samples ID == cursampleID ))[1];
// Don't process the data if the crossing point has been previously found
If( Is Missing( dtsumm:v[dtsummRow] ),
// Find all of the matching rows above the current looping row
Highrows = dt << get rows where( dt:batch == curbatch & dt:Samples ID == cursampleID & Row() > currow );
// If the target value lies between the current rows Y value and the next matching rows Y value then
// determine the crossing voltage value by doing an interprelation of the voltage values of the current row
// and the next matching rows value.
If( dt:Name( "Log10 I [A]" )[Row()] <= dtsumm:Log10 I[dtsummRow] & dt:Name( "Log10 I [A]" )[Min( Highrows )] > dtsumm:Log10 I[dtsummRow],
dtsumm:V[dtsummRow] = dt:V[Row()] + (dt:V[Min( Highrows )] - dt:V[Row()]) * (dtsumm:Log10 I[dtsummRow] - dt:Name( "Log10 I [A]" )[Row()])
/ (dt:Name( "Log10 I [A]" )[Min( Highrows )] - dt:Name( "Log10 I [A]" )[Row()])
);
);
);