Intentando evitar la transposiciónTengo un script que funciona, pero requiere transposición para lograrlo. ¿Existe una forma más sencilla de conseguirlo? Tengo tres columnas: una con un coeficiente cuadrático (a), otra con un coeficiente lineal (b) y una tercera con una constante (c). Al multiplicarlas por una variable de entrada x, obtengo un arco. ¿Hay alguna manera de formar ese arco sin transponer los datos? Actualmente, creo columnas con cambios incrementales en x en una tabla transpuesta, pero los datos son muy digitales y quizás haya una mejor solución.
ax² + bx + c = 0
Automatización y secuencias de comandosRe: Intentando evitar la transposiciónEche un vistazo a la función Y.
Re: Intentando evitar la transposiciónJim
Gracias por esto, no logro encontrar un ejemplo descifrable. Sospechaba que debía haber una mejor manera de hacerlo. Por cierto, el límite superior de X también se almacena en una columna.
Re: Intentando evitar la transposiciónExtraiga los valores de su tabla al ejemplo que se encuentra en el Índice de scripts. Evalúe los valores con la función Y, por ejemplo, con Eval(EvalExpr()).
Names Default To Here(1);
New Window("Example",
Graph Box(
Pen Color("red");
Y Function(20 + 40 * Sin(a / 30), a);
)
);
Opcionalmente, puede crear una columna de fórmula y usar Profiler.
Re: Intentando evitar la transposiciónLo intenté, pero necesito elevar x a la potencia 2 y parece que ahí es donde falla.
Names Default To Here(1);
dt = Current Data Table();
nw = New Window("window", vlb = V List Box());
For Each Row(dt,
Eval(EvalExpr(
vlb << Append(Graph Box(Y Function(Expr(dt[Row(), "HL_HR1_R"]) + Expr(dt[Row(), "HL_HR2_R"]) * x + Expr(dt[Row(), "HL_HR3_R"]) * Power (x, 2) ,x)));
))
);
Re: Intentando evitar la transposición¿Cómo falla? ¿Aparece algún mensaje de error? Tu código funciona cuando lo ejecuto en una tabla ficticia con cuatro filas. Quizás solo deba ajustar un poco los ejes.

Re: Intentando evitar la transposiciónEl error fue mío, tienes razón, sí que tiene sentido. Me quedan dos retos.
1. Me gustaría que todos los datos aparecieran en un solo gráfico.
2 Me gustaría limitar x para cada gráfico a un valor almacenado en otra columna de datos. Generalmente, ese valor es >100.
Re: Intentando evitar la transposiciónAlgo así debería funcionar. Agregué una columna llamada "Límite X" y puse un par de números allí.
Names Default To Here( 1 );
dt = Current Data Table();
nw = New Window( "window", gb = Graph Box( X Scale( 0, 120 ), Y Scale( 0, 35000 ) ) );
For Each Row(
dt,
Eval(
Eval Expr(
gb[FrameBox( 1 )] << Add Graphics Script(
Y Function(
Expr( dt[Row(), "HL_HR1_R"] ) + Expr( dt[Row(), "HL_HR2_R"] ) * x + Expr( dt[Row(), "HL_HR3_R"] ) * Power( x, 2 ),
x,
Max( Expr( dt[Row(), "X Limit"] ) )
)
)
)
)
);

Re: Intentando evitar la transposiciónEste método funciona, sin embargo, es mucho más lento que el método de transposición que utilizaba originalmente. Desafortunadamente, tengo que procesar una gran cantidad de datos.