Boolesche Logik kann nicht mit jmp-Skript auf Tabellenformel ausgeführt werdenHi,
Ich versuche, ein einfaches Skript auszuführen, das Punkte mit einem radialen Abstand von mehr als 100 mm von der Mitte auswählt und dann aus- und ausblendet.
Um das Debuggen zu vereinfachen, habe ich dies in zwei Skripte aufgeteilt: Das erste generiert eine Spalte mit der radialen Distanz Radial = (x^2 + y^2)^(1/2) Formel und das zweite wertet diese Formel aus, indem es Zeilen auswählt und ausblendet wo Radial > 100.
Dies funktioniert leider nicht. Aus irgendeinem sehr seltsamen Grund funktioniert die Bewertung bei dieser Formel nur bis zu einem bestimmten Wert. Radial > (alles über 30) wählt alle Zeilen aus.
Ich sehe zwei Lösungen:
1) Schreiben Sie Werte in die Radialspalte, nicht die Formel selbst. (Werte werden richtig ausgewertet, die Formel nicht). Nicht sicher, wie das geht.
2) Verstehen und korrigieren Sie das Problem, damit die Formel gegen einen Wert größer als 30 ausgewertet werden kann.
Entweder eine Skriptantwort oder eine interaktive Erklärung wäre akzeptabel. Möchte dieses Problem lösen und daraus lernen.
Vielen Dank!
Dave
// script for creating the Radial column<BR />dt1 = Current Data Table ();
dt1 << New Column( "Radial", Formula ((X coordinate^2 + Y coordinate^2)^(1/2)));<BR /><BR />// script for evaluating the Radial formula<BR />dt =Current Data Table();<BR />dt << Clear Row States; <BR />dt << Select where(Radial < 100);<BR />dt << hide and exclude;<BR />
SkriptingBetreff: Boolesche Logik kann nicht mit jmp-Skript auf Tabellenformel ausgeführt werdenSkript zum Erstellen der Radialspalte
dt1 = Current Data Table ();
dt1 << Clear Row States;
dt1 << New Column( "Radial", Formula ((X coordinate^2 + Y coordinate^2)^(1/2)));
Skript zur Auswertung der Radialformel
dt =Current Data Table();
dt << Clear Row States;
dt << Select where(Radial < 100);
dt << hide and exclude;
Betreff: Boolesche Logik kann nicht mit jmp-Skript auf Tabellenformel ausgeführt werdenIch fürchte, ich habe Schwierigkeiten, hier ein Problem zu reproduzieren. Hier ist das Skript, mit dem ich getestet habe.
dt1 = New Table( "Community 416651 Select Where",
Add Rows( 1000000 ),
New Column( "x coordinate",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Sequence( 5, 100, 5 ) ),
Set Selected
),
New Column( "y coordinate",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Sequence( 5, 100, 5, 20 ) ),
)
);
dt1 << New Column( "Radial",
Formula(
(X coordinate ^ 2 + Y coordinate ^ 2) ^ (1 / 2)
)
);
dt1 << Select where( Radial < 60 );
Daher benötigen wir etwas mehr Details zu Ihrem Skript und Ihrer Datentabelle.
Wie groß ist Ihre Datentabelle? Was macht Ihr Skript noch?
Betreff: Boolesche Logik kann nicht mit jmp-Skript auf Tabellenformel ausgeführt werdenDanke für die Antwort Jeff.
Das Einfügen der letzten Zeile Ihres Skripts in meins hat das Problem nicht gelöst. Ich konnte jedoch eine Lösung finden, indem ich den Namen der Spalte in "Radial 1" änderte und am Ende eine Zeile mit Eval-Formel hinzufügte. Nicht sicher, warum das funktioniert. Die Datentabelle besteht aus etwa 1.300 Zeilen mit 15 Spalten, jede Zahl hat eine Breite von 10 bis 12.
Die folgenden beiden Skripte funktionieren. Ich füge sie vollständig ein. Die anderen Zeilen bewerten die Grubentiefe und -verteilung.
Irgendeine Idee, warum die Änderungen funktionierten? Ich war den größten Teil des Tages damit beschäftigt.
Skript 1: Erstellen Sie die Spalten „Pits Only“ und „Radial 1“.
dt1 = Current Data Table ();
dt1 << Clear Row States;
dt1 << New Column( "Pits Only", Formula (If( :Name( "Height (mm)" ) <= 0, :Name( "Height (mm)"), 0 )) );
dt1 << New Column( "Radial 1", Formula ((X coordinate^2 + Y coordinate^2)^(1/2)));
dt1 << Eval Formula;
obj = dt1 << Distribution( Column( :Pits Only), Horizontal Layout( 1 ), Count Axis);
Skript 2: Zeilen ausblenden und ausschließen mit Pits Only > 10 oder Radial 1 > 100 oder Radial 1 < 30
dt =Current Data Table();
dt << Clear Row States;
win = New Window( "Feature Depth" , <<MODAL> 100) | (Radial 1< 30) | (Pits Only > mf));
dt << hide and exclude;</MODAL>