Einen Sprung in einem Parameter erkennen und melden, wo er istLiebe JMP-Community,
Ich bemühe mich, einen Weg zu finden, um die X-Koordinate eines Punktes zu ermitteln, der für den Bruch eines Produkts steht.
Ich bin sicher, dass es möglich ist, dies mit Skripten zu tun, aber ich habe sehr wenig Erfahrung mit JMP.
Jede Hilfe ist willkommen !!
Freundliche Grüße,
/ JM

Re: Einen Sprung in einem Parameter erkennen und melden, wo er sich befindetIn JMP-Spaltennamen wird die Groß- und Kleinschreibung nicht berücksichtigt. In den meisten Fällen hat die Bezugnahme auf "v" oder "V" keinen Einfluss auf die Ausführung des Codes.Re: Einen Sprung in einem Parameter erkennen und melden, wo er sich befindetDanke vielmals! Es hilft sehr. Da wir in JMP den Weg zum Skript zeigen, gebe ich den Code ein und stellte fest, dass ein kleiner Fehler aufgetreten ist. Ich habe "set each value (e-06)" ersetzt, um jeden Wert (-6) einzustellen "-log10 I-" und es funktioniert einwandfrei. Darf ich Sie auch fragen, warum in JMP: dtsumm: v [dtsummRow] keine Fehler generiert. Ich hätte dtsumm gesetzt: V [dtsummRow], da der Name der Spalte in Großbuchstaben steht. Nochmals vielen Dank für Ihre Hilfe! / JMRe: Einen Sprung in einem Parameter erkennen und melden, wo er sich befindetHier ist ein Skript, das Berechnungen zur Bestimmung der Kreuzspannung durchführt
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()])
);
);
);