Cómo hacer referencia a una variable de tabla dentro de una variable de tablaDespués de crear las dos primeras variables, me gustaría hacer que mis variables angleRefY y angleRefX se compensen de zeroX y zeroY mediante un número estático. Intenté hacer esto de diferentes maneras, como puedes ver a continuación.

La única forma de producir un número fue este script, pero luego la variable se convierte en 6 en lugar de QQ+1, por lo que todavía no están vinculados.
dt << Set Table Variable("TT", dt:QQ + 1);¿Alguien sabe cómo se podría hacer esto? Idealmente, ceroX = algún número, ceroY = algún número, ánguloRefX = ceroX + algún número y ánguloRefY = ceroY + algún número como referencia dinámica.
Re: Cómo hacer referencia a una variable de tabla dentro de una variable de tablaSiempre puedes simplemente lanzar la variable al espacio de nombres global y hacer referencia a eso.
Re: Cómo hacer referencia a una variable de tabla dentro de una variable de tablaBueno, ahí tienes. Si solo puede almacenar valores de cadena, parece bastante claro que no podré convertirlo en una referencia dinámica. Ejecutar el script de la tabla tiene sentido. También es solo un clic extra, no está mal. ¡¡Gracias por la ayuda!!Re: Cómo hacer referencia a una variable de tabla dentro de una variable de tablaJim,
Gracias por ese consejo sobre las variables de la tabla que tienen carácter. Ese es un problema claro, sácate el pelo si no lo sabes, con el que te toparás.
otra pequeña adición.si, dt:QQ="51"; luego, envolviendo dt:QQ, de esta manera, num(dt:QQ) devolverá 51 en lugar de "51". Pero si dt:QQ no es numérico, volverá faltante.
La alternativa a esto, que funcionará,
if ( dt:TT == "51", show("success"), show("didn't quite work"));
es algo como esto, que funcionará si dt:TT es numérico
if ( num( dt:TT ) == 51, show("success"), show("didn't quite work"));Re: Cómo hacer referencia a una variable de tabla dentro de una variable de tablaUna variable de tabla es solo una cadena de caracteres guardada.Incluso si su valor de QQ hubiera funcionado, su declaración IF nunca podría ser cierta.
if ( dt:TT == 51, show("success"), show("didn't quite work"));
dt:TT nunca puede tener el valor 51. Todas las variables de la tabla terminan como cadenas de caracteres, por lo que la declaración IF alguna vez funcionaría, tendría que escribirse como:
if ( dt:TT == "51", show("success"), show("didn't quite work"));
Aquí está la documentación de la Guía de secuencias de comandos.
Table Variables
Table variables are for storing a single text string value, such as “Notes”. To understand how
variables work, first get its existing value by sending a Get Table Variable message:
dt = Open( "$SAMPLE_DATA/Solubility.jmp" );
dt << Get Table Variable( "Notes" );
"Chemical compounds were measured for solubility in different solvents. This
table shows the log of the partition coefficient (logP) of 72 organic
solutes in 6 aqueous/nonpolar systems."
Now change the existing value of the string using Set Table Variable and then use Get
Table Variable again to check that the string has been updated:
dt << Set Table Variable( "Notes", "Solubility of chemical compounds" );
dt << Get Table Variable( "Notes" );
"Solubility of chemical compounds"
The following example adds two new table variables to a data table:
dt = Open( "$DOCUMENTS/Big Class.jmp" );
myvar = "This is my version of the JMP Big Class sample data.";
dt << Set Table Variable( "key1", myvar );
dt << Set Table Variable( "key2", myvar );
Notice that setting the value creates a new variable only if one by the given name does not
already exist. If you add two table variables with the same name, only one variable is created.
Posiblemente podría hacer lo que quiera usando un script de tabla, pero primero tendría que configurar la variable de tabla QQ y luego ejecutar el script de tabla que actualizaría TT.
Re: Cómo hacer referencia a una variable de tabla dentro de una variable de tablaEso crea un desplazamiento estático. Debería haber sido más claro en que el objetivo es un desplazamiento dinámico. Por ejemplo, si QQ se reasigna a 43, el objetivo es que TT se resuelva en 44 por sí solo.
Aquí hay una adaptación de su código que debería imprimir si la variable es realmente dinámica o no.
names default to here(1);
dt=new table("Example", add rows(3),new column("Sample", values([1,2,3])));
dt << new table variable("QQ", 42 );
dt << New Table Variable("TT", eval(num(:QQ) + 1));
wait(0);
dt << set table variable("QQ", 50);
if ( dt:TT == 51, show("success"), show("didn't quite work"));Re: Cómo hacer referencia a una variable de tabla dentro de una variable de tablaHe aquí un ejemplo sencillo.Su código estaba cerca, solo necesitaba comprender que todas las variables de tabla son caracteres y, además, todo lo que necesita hacer para hacer referencia a una variable de tabla es usar :QQ, ya que dt ya es el objeto del mensaje.
names default to here(1);
dt=new table("Example", add rows(3),new column("Sample", values([1,2,3])));
dt << new table variable("QQ", 42 );
dt << New Table Variable("TT", num(:QQ) + 1);