No se puede realizar la lógica booleana usando el script jmp en la fórmula de la tablaHola,
Estoy tratando de ejecutar un script simple que seleccionará y luego ocultará y excluirá puntos que tengan más de 100 mm de distancia radial desde el centro.
Para simplificar la depuración, lo divido en dos scripts: el primero genera una columna con la fórmula de distancia radial Radial = (x ^ 2 + y ^ 2) ^ (1/2) y el segundo evalúa esta fórmula, seleccionando y ocultando filas donde Radial> 100.
Por desgracia, esto no funciona. Por alguna razón muy extraña, la evaluación solo funciona con esta fórmula hasta cierto valor. Radial> (cualquier valor superior a 30) selecciona todas las filas.
Puedo ver dos soluciones:
1) Escriba valores en la columna Radial, no en la fórmula en sí. (Los valores se evalúan correctamente, la fórmula no). No estoy seguro de cómo hacer esto.
2) Comprender y corregir el problema para que la fórmula pueda evaluarse con un valor superior a 30.
Sería aceptable una respuesta en un guión o una explicación interactiva. Me gustaría resolver este problema y aprender de él.
¡Gracias!
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 />
ScriptingRe: no se puede realizar la lógica booleana usando el script jmp en la fórmula de la tablascript para crear la columna radial
dt1 = Current Data Table ();
dt1 << Clear Row States;
dt1 << New Column( "Radial", Formula ((X coordinate^2 + Y coordinate^2)^(1/2)));
script para evaluar la fórmula radial
dt =Current Data Table();
dt << Clear Row States;
dt << Select where(Radial < 100);
dt << hide and exclude;
Re: no se puede realizar la lógica booleana usando el script jmp en la fórmula de la tablaMe temo que tengo problemas para reproducir cualquier problema aquí. Aquí está el guión con el que solía probar.
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 );
Entonces, vamos a necesitar un poco más de detalles sobre su secuencia de comandos y su tabla de datos.
¿Qué tan grande es su tabla de datos? ¿Qué más está haciendo tu guión?
Re: No se puede realizar la lógica booleana usando el script jmp en la fórmula de la tablaGracias por responder Jeff.
Pegar la última línea de su secuencia de comandos en la mía no resolvió el problema. Sin embargo, pude encontrar una solución cambiando el nombre de la columna a "Radial 1" y agregando una línea con Eval Formula al final. No estoy seguro de por qué esto funciona. La tabla de datos tiene unas 1300 filas con 15 columnas, cada número tiene un ancho de 10 a 12.
Los siguientes dos scripts funcionan. Los estoy pegando en su totalidad. Las otras líneas evalúan la profundidad y distribución del tajo.
¿Alguna idea de por qué funcionaron las modificaciones? He estado en esto la mayor parte del día.
Script 1: Cree columnas "Solo pozos" y "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);
Script 2: Ocultar y excluir filas con Pits Only > 10 o Radial 1 > 100 o 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>